访问提供程序内部的反应上下文值?

时间:2019-07-10 17:12:24

标签: reactjs react-native react-router react-context

我具有以下上下文

<AuthContext.Provider value={
    {
        token: localStorage.getItem('token'), 
        userId: this.state.userId, 
        login: this.login, 
        logout:this.logout
    }
}>
    <main className="main-content">
        <Switch>
            {this.context.token && <Redirect from="/" to="/events" exact/>}
            {this.context.token && <Redirect from="/register" to="/events" exact/>}
            {this.context.token && <Redirect from="/login" to="/events" exact/>}
            {!this.context.token && <Route path="/register" component={RegisterPage} />}
            <Route path="/events" component={EventsPage} />
            {this.context.token && <Route path="/bookings" component={BookingsPage} />}
            {!this.context.token && <Route path="/login" component={LoginPage} />}
            {!this.context.token && <Redirect to="/login" exact/>}
        </Switch>
    </main>
</AuthContext.Provider>

尽管我的this.context.token只是在课程之外被设置,但未定义。在另一个类中,它可以正常工作,在这里我将其与消费者包装在一起,但是,我在这里做了同样的事情,但无济于事!有任何想法吗?我可以使用提供程序中的值,还是必须将我的Switch语句包装在<AuthContext.Provider>标记中?

0 个答案:

没有答案