今天碰到一个问题 路由组件之间的传值
正常的组件 父传子 子传父 都很简单
<Nav UserInfo={this.state.userInfo} />
//直接在nav 组件种用 this.props.userInfo 就可以获取到父组件的值
但是在route 组件 这样是不行的
<Route exact path="/" component={Banner} UserInfo={this.state.userInfo} />
//banner 组件内是拿不到这个this.props.userInfo, 报错
才发现在Banner 组件上面还包着一层route 组件
然后找到了这样的解决方案
<Route exact path="/space/:id" render={(props)=><Space {...props} getUserInfo={this.getUserInfo}/>} />
//写一个render的方法将组件暴露 把状态放在组件本身,然后就可以调用了。
事实是可以用的,但我是个小弱鸡,并不知道是不是一个好的办法,欢迎大神指点。
网友评论