Javascript 反应路由器从子类更新父状态
假设我的路线如下:Javascript 反应路由器从子类更新父状态,javascript,reactjs,react-router,Javascript,Reactjs,React Router,假设我的路线如下: <Route name="base" path="/" component={Base}> <Route name="A" path="/a" component={A}></Route> </Route> var Base = React.createClass({ getInitialState() { return {current: 1} }, render() { return (
<Route name="base" path="/" component={Base}>
<Route name="A" path="/a" component={A}></Route>
</Route>
var Base = React.createClass({
getInitialState() {
return {current: 1}
},
render() {
return (
<div>{this.state.current}</div>
<div>{this.props.children}</div>
);
}
});
var A = React.createClass({
componentDidMount() {
// how to set base class state
//
},
render() {
....
}
});
我想从
A
的componentDidMount
方法中设置或更新Base(this.state.current)
状态,我应该在场景中执行什么操作。要使此工作正常,您可以得到如下结果:
var Base = React.createClass({
getInitialState() {
return {current: 1}
},
render() {
return (
<div>{this.state.current}</div>
<div>{this.props.children}</div>
<div>{this.props.demo}</div>
);
}
});
export default connect(state => ({
demo: state.demo
}))(Base);
---
var A = React.createClass({
componentDidMount() {
// how to set base class state
//
this.props.setDemo('demo');
},
render() {
....
}
});
export default connect(() => ({}), {
setDemo
});
var Base=React.createClass({
getInitialState(){
返回{current:1}
},
render(){
返回(
{this.state.current}
{this.props.children}
{this.props.demo}
);
}
});
导出默认连接(状态=>({
演示:state.demo
}))(基础);
---
var A=React.createClass({
componentDidMount(){
//如何设置基类状态
//
this.props.setDemo(“demo”);
},
render(){
....
}
});
导出默认连接(()=>({}){
setDemo
});
此解决方案基于和,但应该可以将其应用于其他系统。想法是一样的
如果使用Redux,则需要实现与上述语义匹配的操作和缩减器。您是否愿意使用Redux或mobx等状态管理解决方案?有什么特别的限制吗?不要使用状态管理解决方案,只使用简单的react路由器类@贝布拉沃克,不知道他们。从外观上看,react路由器API无法轻松访问父级,因此如果没有它,这将很难解决。嗯,也许我应该导入状态管理,非常感谢@贝布拉