#javascript #twitter-bootstrap #reactjs #react-bootstrap
#javascript #twitter-bootstrap #reactjs #react-bootstrap
Вопрос:
Недавно я начал играть с react и столкнулся с проблемой. Я понятия не имею, почему это вызывает у меня эту проблему. Я искал в Google и S / O, но не могу найти причину, по которой мой код приводит к ошибке.
Я установил react-bootstrap в свой проект. Я могу подтвердить, что это работает, поскольку я могу загружать все компоненты без каких-либо проблем.
Однако в этом фрагменте кода я сталкиваюсь с ошибкой «Неперехваченное инвариантное нарушение: addComponentAsRefTo …», когда я добавляю <Modal/>
оболочку вокруг своей формы (без оболочки моя форма работает нормально).
Вот часть моего кода (все включено в один и тот же компонент):
handleClick() {
var foo = this.refs.foo.value;
...
render() {
var Modal = require('react-bootstrap').Modal;
return (
<Modal show={this.state.showModal} onHide={this.close}>
<div>
<input ref='foo' />
<button onClick={this.handleClick}>Submit</button>
</div>
</Modal>
)
}
...
Может кто-нибудь, пожалуйста, помочь мне понять, почему я получаю ошибку ‘ref’, когда я переношу ввод формы в компонент модели?
Ответ №1:
глядя на исходный код react bootstrap, они ожидают, что вы обернете содержимое, используя их подкомпоненты https://react-bootstrap.github.io/components.html#modals-live попробуй это:
<Modal show={this.state.showModal} onHide={this.close}>
<Modal.Body>
<div>
<input ref='foo' />
<button onClick={this.handleClick}>Submit</button>
</div>
</Modal.Body>
</Modal>
Комментарии:
1. Спасибо @finalfreq. Я пробовал это, но он по-прежнему выдает ту же проблему. Я также попытался заменить свои входные данные компонентами react bootstrap. Все та же ошибка.
2. Что произойдет, если вы удалите ref=foo из входных данных
3. Все то же самое.
4. Похоже, известная проблема, которую другие решили, находится здесь github.com/react-bootstrap/react-bootstrap/issues/223