【发布时间】:2018-10-18 10:28:05
【问题描述】:
componentDidMount() {
const user = auth.getCurrentUser();
this.setState({ user });
}
我有这个代码,我想this.setState({ user });需要一点时间,如果我想做一些检查的话就像
<Route
path="/foo"
render={props =>
this.state.user ? (
<Bar {...props} />
) : (
<Redirect to="/login" />
)
}
/>
刷新页面时,用户一开始总是为空。什么是正确的解决方案?我需要在constructor 设置状态吗?还是我做错了什么?
我的帐户被一些反对票问题阻止了,有趣的是我必须重新编辑它们,即使我已经有接受的答案。我不明白这样做有什么意义。我很沮丧这个stackoverflow系统。
现在,我基本上什么也做不了,只能继续编辑我的问题,而且它们都已得到解答。这太荒谬了!!!
【问题讨论】:
-
“我需要在构造函数中设置状态吗?”,你试过了吗,结果如何?
-
使用回调或使用异步/等待。还将 this.setState({ user }) 更改为 this.setState({ user: user });
-
@NguyễnThanhTú 是的,我做到了。如果我在
constructor中设置状态,只是想知道最佳做法是什么 -
@parth 与异步和等待无关。该功能没有承诺。这个
this.setState({ user });是有效的js代码 -
@AndySong 我想我知道你想做什么。那么,这篇文章可能会有所帮助:tylermcginnis.com/react-router-protected-routes-authentication
标签: javascript reactjs