React: модаль React-bootstrap не работает в т.е. 10

Используя React-Bootstrap, у меня есть модальное окно, которое открывается условно. Модальный режим отлично работает в ie 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

Это не сарказм, но поддержка IE10 закончилась много лет назад, и, судя по статистике использования, практически нет пользователей, использующих эту версию. Вы абсолютно уверены, что ваше приложение должно поддерживать IE10?

Alexander Staroselsky 09.04.2019 21:39

К сожалению, да.

Denis J 09.04.2019 21:42

Я хотел бы знать, установили ли вы свойство paddingRight в своем коде? Если да, то какова ценность?

Jenifer Jiang 10.04.2019 11:24

Это странно. Единственный определенный paddingRight вложен в модули узла для модального окна в react-bootstrap. Пробовал комментировать, но безрезультатно.

Denis J 10.04.2019 15:58

Обновлять. Якобы react-bootstrap должен работать с IE 10. И все есть, кроме модального. Возможно ли, что у меня неправильная настройка полифилла. Я использую пакет react-app-polyfill. Этого достаточно или мне еще нужен cdn?

Denis J 12.04.2019 15:12
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
5
681
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Modal работает с новым обновлением react-bootstrap

Другие вопросы по теме