Неперехваченное инвариантное нарушение с использованием модальной начальной загрузки React

#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