Здравствуйте. Есть модальное окно (ну например с информацией о товаре) + несколько элементов управления (кнопки), при нажатии на которые должно отображаться это модальной окно. Куда рендерить модальное окно?
1. В каждой кнопке писать {this.state.isShowModal && <Modal/>}, но как-то глупо хардкодить его в каждом элементе управления.
2. Тоже самое в App, но тогда при открытии каждого окна будет реконсилироваться всё приложение.
Модальные окна необязательно должны отдавать в render что-то, кроме как null, когда они "закрыты". Поэтому рендерьте окна ближе к корню DOM-дерева приложения, они будут рендериться, но в render будет null, если isShowModal = false.
Алексей Николаев,
Ну да.
1 - Замените ...extends Component... на ...extends PureComponent...
2 - Используюте redux для храниния состояния модальных окон.
3 - Использюте combineReducersдабы постоянный вызов mapStateToPropsне приводил к тормозам.
... Еще куча сомнительных штук вместо какого-нибудь, по непонятным причинам отсутствующего, getComponent('modal').showWithProps(props);
Вобщем пора react-ам, redux-ам и т.д. делать ребрендинг и менять логитип на: