我有一个<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。
有没有办法在卸载后挂在同一个组件上以便重新安装?