У меня есть простой компонент <StatefulView>
, который поддерживает внутреннее состояние. У меня есть другой компонент <App>
, который переключает отображение или нет <StatefulView>
.
Однако я хочу сохранить внутреннее состояние <StatefulView>
между установкой/отключением.
Я решил, что могу создать экземпляр компонента в <App>
, а затем управлять его визуализацией/установкой.
var StatefulView = React.createClass({
getInitialState: function() {
return {
count: 0
}
},
inc: function() {
this.setState({count: this.state.count+1})
},
render: function() {
return (
<div>
<button onClick={this.inc}>inc</button>
<div>count:{this.state.count}</div>
</div>
)
}
});
var App = React.createClass({
getInitialState: function() {
return {
show: true,
component: <StatefulView/>
}
},
toggle: function() {
this.setState({show: !this.state.show})
},
render: function() {
var content = this.state.show ? this.state.component : false
return (
<div>
<button onClick={this.toggle}>toggle</button>
{content}
</div>
)
}
});
Это, по-видимому, не работает, и при каждом переключении создается новый <StatefulView>
.
Здесь JSFiddle.
Есть ли способ повесить на тот же компонент после его размонтирования, чтобы его можно было снова установить?