У меня довольно простая проблема, и я не уверен, как ее решить с помощью потока данных в одном направлении.ReactJS: Управление дочерним состоянием из дочернего элемента и родителя
Скажем, у вас есть ссылка на родителя, который показывает модальное
В модальной, у вас есть «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 путь будет хранить открытия/закрытия логики в модальную переменной.
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: how to modify child state or props from parent?
Этот ответ - задира. –