Загрузка Javascript зависит от jQuery. У jQuery и React есть разные способы манипулирования DOM. Чтобы избежать проблем в будущем, вы не должны использовать оба. Если вы используете React, мышление в React важно.
Хорошая оболочка React Bootstrap - Reactionstrap . Я рекомендую вам использовать библиотеку для сборки компонента на основе Bootstrap, а не писать класс Bootstrap raw. Компонент с именем Collapse
может соответствовать вашим потребностям, как вы можете видеть в примере кода здесь .
Если вы вообще не заинтересованы в импорте какой-либо библиотеки, довольно просто написать компонент самостоятельно, используя state
. Внутренняя идея похожа на пример кода Collapse
, приведенный выше:
class MyCollapse extends Component {
state = {
isOpen: false
};
toggleState = () => this.setState( prevState => ({ isOpen: !prevState.isOpen }));
render() {
return (
<div>
<button onClick={this.toggleState}>Click to toggle</button>
{
this.state.isOpen &&
<div className="my-collapse">
{/* COLLAPSE CONTENT */}
</div>
}
</div>
)
};
}
Каждый раз, когда вы нажимаете кнопку, атрибут состояния isOpen
переключается, что приводит к повторной визуализации компонента. Это одна из самых сильных сторон React: очень гибкая.