Это немного упрощенный пример моего текущего кода React.js.Как обновить состояние, не передавая его дочернему компоненту
https://jsfiddle.net/69z2wepo/14668/
var Main = React.createClass({
getInitialState: function(){
return {
showText: false
}
},
handleClick: function(){
this.setState({
showText: true
})
},
render: function() {
return (
<div>
<button onClick={this.handleClick}>Press me</button>
<Child showText={this.state.showText} />
</div>
)
}
});
var Child = React.createClass({
render: function(){
if(this.props.showText){
return (
<div>
Pressed
</div>
)
}
return (
<div>
Default text
</div>
)
}
});
React.render(<Main/>, document.getElementById('container'));
Когда я изменить showText
свойство верно и передать его вниз к моему ребенку компонент, как я могу немедленно переключить showText
ложь?
Что бы я хотел, это нечто подобное, за исключением того, что обратный вызов не должен отправляться ребенку.
handleClick: function(){
this.setState({
showText: true
}, function(){
showText: false
})
}
Мой Main
компонент должен отправить только истинные, чтобы ребенок при нажатии кнопки. В противном случае я хочу, чтобы это состояние было ложным все время.
Вы хотите, чтобы перевернуть значение 'showText' на Main обратно в ложь, не вызывая изменения в опору ребенка? Итак, в основном, Ребенок будет когда-либо переходить от «По умолчанию текст» к «Нажато» и никогда не возвращается к «По умолчанию текст»? Если это так, то почему вам нужно установить 'showText' обратно на false? – Tom