【发布时间】:2016-12-14 20:06:19
【问题描述】:
我有一个 React/Redux/Firebase 应用程序,我需要在渲染方法之前检查当前用户的用户名,以便知道是否需要去数据库并检索其他用户。
但是,由于某种原因我不清楚,我无法在渲染方法之外访问this.props.currentUser。它返回 null。
基本上,我想在函数内部访问它。我的代码如下所示:
componentDidMount() {
var userURL = window.location.pathname.replace(/^\/([^\/]*).*$/, '$1');
if(this.props.currentUser.username !== userURL) {
this.getDbUser(userURL);
console.log(userURL);
}
}
我收到一个错误
Cannot read property username of null
我可以在render() 中正常访问该数据。任何想法如何解决这个问题都会很棒。谢谢!
【问题讨论】:
-
可能是您的渲染方法运行了两次,在第二次运行时,用户被定义。这就是它在渲染中起作用的原因
-
谢谢,渲染实际上运行了两次,不知道为什么。我在构造函数中调用了一个 fetchUser 方法,所以它不应该是可用的吗?
-
如果它是异步的则不是