Во-первых, просто о соединении этих двух компонентов. Передача данных в React предлагается при передаче от родительского компонента к дочернему компоненту. Это состояние подъема. Обычно, используйте обратный вызов для изменения родительского компонента заголовка и прохода. данные возвращаются на боковую панель. Теперь редукция хорошо работает с реагировать. Итак, просто установите состояние для боковой панели и свяжите функцию в onClick заголовка. И добавьте что-нибудь в onClick. Например:
<header onClick = { this.expand.bind(this)} />
<sidebar sidebar = { this.state.sidebar} />
Кстати, реагирование предоставляет нам несколько способов передачи данных. Например, контекст используется, когда вложение компонента является сложным, и трудно найти общий компонент-отец.
Во-вторых, «событие нацелено на изменение всех элементов, определенных в дочерних компонентах». Эта проблема из-за того, как работает реакция. Вы можете использовать shouldComponentUpdate, чтобы избежать этого. Но здесь не рекомендуется.
В-третьих, что касается React Portal, он добавлен в React v16. Он используется для визуализации дочернего компонента за пределами родительского компонента. Этот ответ хорош, если вы хотите об этом знать. Как использовать ReactDOM.createPortal ( ) в Реакте 16? . Компоненты siderbar и header находятся на одном уровне. Поэтому я не думаю, что это необходимо.