我有这个私有路由器,但我正在努力从我的应用程序组件的状态传递道具。有人可以解释如何传递用户对象吗?
<Route
{...rest}
render={(props) => authed === true
? <Component {...props} />
: <Redirect to={{pathname: '/login', state: {from: props.location}}} />}
/>
export default class App extends Component {
state = {
authed: false,
loading: true,
user: false
}
答案 0 :(得分:1)
如果此路线位于App渲染方法内,那么您可以这样做:
<Route
{...rest}
render={(props) => this.state.authed === true
? <Component {...props} user={this.state.user} />
: <Redirect to={{pathname: '/login', state: {from: props.location}}} />}
/>
您的组件将获得您在App组件状态中维护的react-router道具(历史记录,匹配,位置)和用户。