我有一个维护内部状态的简单组件 <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。
有没有一种方法可以在同一个组件被卸载之后挂起来,这样就可以重新安装了?