2 回答
TA贡献1995条经验 获得超2个赞
可以在Route上边用render的方式加载子组件,这样就可以传递你的这些函数之类的了。
<Route render={props => (
<Component onDoSomething={this.doSomething}/>
)}/>
TA贡献1851条经验 获得超3个赞
好的,解决了
class Home extends Component {
constructor(props) {
super(props)
}
doSomething() {
}
render() {
return (
<div>
<Auth path='/user' component={User} onDoSomething={this.doSomething} />
</div>
);
}
}
class Auth extends Component {
constructor(props) {
super(props)
}
render() {
let { component: Part, ...rest } = this.props
return (
<div>
<Route {...rest} render={(props) => {
// 这里的rest就把onDoSomething穿都给User组件了<Part {...rest} {...props} />
return (
true ? <Part {...rest} {...props} /> : <Redirect to={{pathname: '/login', state: {from: props.location }}} />
)
}} />
</div>
);
}
}
添加回答
举报