Я создал приложение Rails и установил react-rails. Я также установил browserify-rails, чтобы помочь мне управлять пакетами внешнего реагирования.Реагировать js с ошибкой браузера и бутстрапа
Вся моя настройка работает хорошо, но когда я пытаюсь использовать модальный компонент пакета react-bootstrap, мне представлена ошибка firebug, которая, похоже, блокирует выполнение всех других js. Ошибка гласит:
неперехваченного Инвариантного Нарушение: addComponentAsRefTo (...): Только ReactOwner могут иметь реф ....
Я пробовал множество возможных решений, но не повез. Я не понимаю, почему я получаю ошибку и почему это происходит только на определенных компонентах, таких как <Modal />
. Если я использую обычный html-модал, ошибок нет. Вот мои настройки:
package.json
{
"name": "my_project",
"devDependencies": {
"browserify": "^13.1.0",
"browserify-incremental": "^3.1.1",
"reactify": "^1.1.1"
},
"license": "MIT",
"engines": {
"node": ">= 0.10"
},
"dependencies": {
"react": "^15.3.2",
"react-bootstrap": "^0.30.3",
"react-dom": "^15.3.2"
}
}
application.js
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require react
//= require react_ujs
//= require components
//= require_tree .
var React = window.React = global.React = require('react');
var ReactDOM= window.ReactDOM = global.ReactDOM = require('react-dom');
application.rb
...
config.browserify_rails.commandline_options = "-t reactify --extension=\".js.jsx\""
...
components.js
// Setup app into global name space for server rendering
var app = window.app = global.app = {};
var MyComponent = require('./components/my_component');
app.MyComponent = MyComponent;
my_component.js.jsx
var Modal = require('react-bootstrap').Modal;
var MyComponent = React.createClass({
render() {
return (
<Modal show={true}><h1>I'm working</h1></Modal>
)
}
});
module.exports = MyComponent;
Я очень новый реагировать и, таким образом, я не уверен, есть ли эта ошибка что-то делать с моей установки или если это что-то еще?
Спасибо за ответ @ erik-sn. Я копирую и вставляю ваш пример в свой компонент, но, к сожалению, ошибка все еще существует. – Herm