【发布时间】:2021-01-05 22:03:19
【问题描述】:
所以我正在使用 redux,如果用户登录则分派一个令牌。然后我获取用户的令牌,如果它存在,我设置 X 路由可用,否则,Y 路由。问题是每次刷新时,App 组件都会渲染两次。第一次令牌是null 第二次令牌是true。
好吧,为什么要渲染两次? 如果您认为比这更有效,请针对相同的操作使用不同的方法来回答。
如果您需要更多代码,请询问。
问候
代码:
const App = () => {
const dispatch = useDispatch();
const token = useSelector((state) => state.auth.token);
const onCheckAuth = useCallback(() => dispatch(checkAuth()), [dispatch]);
useEffect(() => {
onCheckAuth();
}, [onCheckAuth]);
const render = () => {
if (token) {
return (
<Switch>
<Route path='/hearing' component={Hearing} />
<Route path='/logout' component={Logout} />
<Route path='/' exact component={Dashboard} />
<Redirect to='/' />
</Switch>
);
}
return (
<Switch>
<Route path='/login' component={Login} />
<Redirect to='/login' />
</Switch>
);
};
console.log(token);
return <>{render()}</>;
};
export default App;
【问题讨论】:
标签: javascript reactjs routes react-router