У меня довольно простая проблема, и я не уверен, как ее решить с помощью одного потока данных.
Скажите, что у вас есть ссылка в родительском, которая показывает модальный
В модальном режиме у вас есть "X", который закрывает его.
Я знаю, что могу изменить состояние модальности у родителя через реквизиты
// In the parent
<Modal display={this.state.showModal} />
// In the modal
<div className={this.props.display ? "show" : "hide"}>
<a className="close">×</a>
...
</div>
И я знаю, как закрыть модальный, но не тот и другой. Не уверен, как сохранить состояние, которое является общим и контролируемым как родительским, так и дочерним модальным.
UPDATE
В попытке сохранить это как можно более модульным, я думаю, что метод React будет хранить логику open/close в модальной переменной.
var ParentThing = React.createClass({
...
render (
<Modal /> // How can I call this.open in the modal from here?
)
});
var Modal = React.createClass({
setInitialState: function() {
return {
display: false
}
},
close: function() {
this.setState({ display: false });
},
open: function() {
this.setState({ display: true });
},
render: function() {
return (
<div className={this.state.display ? "show" : "hide"}>
<a className="close" onClick={this.close}>×</a>
</div>
)
}
});
Я видел этот метод, но, похоже, это немного больше, чем мне нужно делать здесь. Reactjs: как изменить дочернее состояние или реквизит от родителя?