【发布时间】:2020-08-22 16:03:36
【问题描述】:
在从 cookie 更新状态失败后,我正在尝试从我的上下文重定向。
import React, { createContext, Component } from 'react';
import { withRouter } from "react-router-dom";
import Cookies from 'universal-cookie';
export const MyContext = createContext();
const cookies = new Cookies();
class MyProvider extends Component {
componentDidMount() {
this.setStateFromCookie();
}
setStateFromCookie = () => {
try {
this.setState({ data: cookies.get('my-cookie')['data'] });
} catch(error) {
console.log(error);
this.props.history.push('/');
}
return
};
render() {
return (
<MyContext.Provider value={{...this.state}}>
{this.props.children}
</MyContext.Provider>
);
}
}
export default withRouter(MyProvider);
我在 this.props.history.push('/') 上使用 withRouter 挂钩,因为上下文正在包装路由器
class MyApp extends Component {
render() {
return (
<BrowserRouter>
<MyProvider>
<div className="MyApp">
<Router>
<Route exact path='/' component={Index} />
<Route exact path='/dashboard' component={Dashboard} />
</Router>
</div>
</MyProvider>
</BrowserRouter>
);
}
}
export default MyApp;
问题是在错误之后重定向到主页,但主页没有呈现。我仍然看到仪表板页面。
知道发生了什么以及如何解决这个问题
【问题讨论】:
标签: reactjs react-native react-router react-context