2 回答

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊
可以在Route上邊用render的方式加載子組件,這樣就可以傳遞你的這些函數(shù)之類的了。
<Route render={props => (
<Component onDoSomething={this.doSomething}/>
)}/>

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊
好的,解決了
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>
);
}
}
添加回答
舉報(bào)