Приложение My React использует карусель реакции bootstrap. Карусель работает нормально на Chrome, Firefox, Safari, Edge, но не работает на Inte rnet Explorer.
Проблема: карусель переключается в первый раз, а затем останавливается. Он больше не переключается автоматически, и вы не можете нажимать на индикаторы, чтобы изменить страницу.
Я искал в Интернете и здесь, и не могу найти сообщение / решение для моего конкретного c случая.
Мой пакет. json показывает, какую версию React- Bootstrap я использую
"dependencies": {
"react": "~16.11.0",
"react-app-polyfill": "^1.0.5",
"react-bootstrap": "^1.0.0-beta.16",
"react-dom": "~16.11.0",
"react-router-dom": "~5.1.2",
"react-scripts": "~3.2.0",
"react-tabs": "^3.1.0"
},
Я указываю использовать полифиллы в качестве первого импорта в моем индексе. js
// these 2 MUST be the first 2 imports
import "react-app-polyfill/ie11";
import "react-app-polyfill/stable";
Упрощенная версия моего метода рендеринга:
return (
<div >
<Carousel interval="2000" >
{this.state.carouselItemsArr.map(
(item, i) =>
<Carousel.Item key={i}>
<img src={item.image} alt="first" />
<Carousel.Caption>
<div className="...">
{item.name}
</div>
</Carousel.Caption>
</Carousel.Item>
)}
</Carousel>
</div>
);
Решения, испробованные
В идеале я хотел бы, чтобы карусель работала в Inte rnet Explorer. Если я не могу заставить его работать, то приемлемым обходным путем является показ первого элемента в карусели, а не переключение на другие и скрытие индикаторов.
Я могу скрыть индикаторы, используя JavaScript, но это не останавливает переключение карусели перед замораживанием.
var showIndicators = (this._isIE) ? false : true;
return (
<div>
<Carousel interval="2000" indicators={showIndicators}>
....
Я пытался скрыть индикаторы, используя css, но как только я добавляю медиазапрос (даже если он пустой), весь сайт больше не оказывает в IE. Более того, как и обходной путь JavaScript выше, он не останавливает переключение карусели один раз.
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
/* IE10+ CSS */
.carousel-indicators {
display:none;
}
}