Redux connect中调用dispatch更新跳过props的update检查?

发布于 2022-09-12 00:06:50 字数 851 浏览 21 评论 0

最近在学习React,首次尝试用Taro写项目。
用Redux的时候,在页面中dispatch改变state中的数据
个人理解如下:
使用connect将state中的数据作为props绑定到组件上,

@connect(({ course }) => ({
  course
}), (dispatch) => ({
  dispatchFetchCourse() {
    return dispatch(fetchCourse())
  }
}))

当调用dispatch的时候,修改了props,

async componentDidMount() {
    await this.props.dispatchFetchCourse();
}

所以应该会调用componentWillReceiveProps

componentWillReceiveProps(nextProps){
    console.log('this.props', this.props.course.lastUpdated)
    console.log('nextProps', nextProps.course.lastUpdated)
}

并且在这个生命周期中,应该可以看到当前的props和即将更新的props,但是现在console查看的都是更新后的props。
image.png

数据中的lastUpdated是发起dispatch后才会添加到state中的,但是现在在更新前查看却可以看到更新后的,所以有点懵逼。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文