React: модал React-bootstrap не работает в т.е 10 - PullRequest
0 голосов
/ 09 апреля 2019

Используя React-Bootstrap, у меня есть модал, который открывается условно. Модал отлично работает в т.е 11.

Вот модал, который работает в ie11 ..

handleCloseAlert() {
  this.setState({ alertShow: false });
}

handleShowAlert() {
  this.setState({ alertShow: true });
}
noResults() {
  this.setState({alertShow:true})
}

<Modal show={this.state.alertShow} 
          onHide={this.handleCloseAlert}
          {...this.props}
          data-toggle="modal"
          size="sm"
          aria-labelledby="contained-modal-title-vcenter"
          centered>
          <Modal.Header closeButton>
            <Modal.Body>No results found</Modal.Body>
          </Modal.Header>
        </Modal>

Когда я тестирую в ie10, экран становится белым, когда модал должен открыться. Вот ошибка, которую я получаю в консоли ..

[object Error]{description: "Unable to s...", message: "Unable to s...", name: "TypeError", number: -2146823281, stack:
Unhandled promise rejection TypeError: Unable to set property 'paddingRight' of undefined or null reference

Я также протестировал, используя только код Bootstrap, и модал работает с примером кода с сайта Bootstrap. Полагаю, я мог бы использовать их код, но не мог понять, как открыть и закрыть модально.

Вот пример из начальной загрузки, который не закодирован для рендеринга с условной реакцией.

<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
  Launch demo modal
</button>

<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        ...
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>

Я пытался добавить show={this.state.alertShow} к модальному тегу, но я получаю эту ошибку в консоли.

Warning: Received `false` for a non-boolean attribute `show`.

If you want to write it to the DOM, pass a string instead: show="false" or show={value.toString()}.

If you used to conditionally omit it with show={condition && value}, pass show={condition ? value : undefined} instead.

Есть ли способ сохранить мой текущий код и заставить его работать с ie10? Или мне нужно перекодировать без React-Bootstrap?

У меня также есть import 'react-app-polyfill/ie9'; в моем index.js

1 Ответ

0 голосов
/ 02 мая 2019

Модал работает с новым обновлением реакции-начальной загрузки

...