Javascript 使用Redux Reducer修改嵌套状态

Javascript 使用Redux Reducer修改嵌套状态,javascript,reactjs,redux,Javascript,Reactjs,Redux,我遇到了一个让我大吃一惊的问题。 我正在使用React和Redux开发我的web应用程序,我的应用程序使用Firebase实现的通知系统。 每份通知的结构如下: var通知={ 来自用户:{ 姓名:'约翰', 姓:多伊 }, 有效载荷:{ 信息:'Lorem ipsum…' } 看到了:错, 时间戳:1569883567 }我想调度电话还没有启动。尝试执行下面的命令 componentDidMount() { this.props.fetch_notification(); } rend

我遇到了一个让我大吃一惊的问题。 我正在使用React和Redux开发我的web应用程序,我的应用程序使用Firebase实现的通知系统。 每份通知的结构如下:

var通知={
来自用户:{
姓名:'约翰',
姓:多伊
},
有效载荷:{
信息:'Lorem ipsum…'
}
看到了:错,
时间戳:1569883567

}
我想调度电话还没有启动。尝试执行下面的命令

componentDidMount() {
  this.props.fetch_notification();
}

render() {
  console.log(this.props.notification); // It should print an output here if your xhr/ajax/axios call is correct
}


此外,使用componentWillMount是不安全的(根据ReactJS当前文档)。避免在将来使用此生命周期。

您没有调用
fetch\u通知
它显示初始状态。你永远不会获取notifcationI忘了在我的帖子中粘贴我的代码行“this.props.fetch_notification()”。无论如何,正在成功调度操作,并且从Firebase返回通知对象(用字段填充)。问题仍然存在于减速器中;似乎我无法修改状态中的通知对象。您如何知道您的通知是空的?当您执行此操作时,
componentWillMount
中的
console.log(this.props.notification)
将明显为空,因为您刚才在前一行中调用了fetch。它在render方法(最后一次调用)中也是空的吗?我试图在我的组件的render()方法中呈现它的每个值。就像{this.props.notification.from_user.name}一样,我总是得到错误:“TypeError:无法读取未定义的属性'name'