首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >`shouldComponentUpdate`在比较`nextProps`和`nextState`时切换属性和状态

`shouldComponentUpdate`在比较`nextProps`和`nextState`时切换属性和状态
EN

Stack Overflow用户
提问于 2019-01-12 01:42:16
回答 2查看 157关注 0票数 0

下面是我的方法:

代码语言:javascript
复制
shouldComponentUpdate = (nextState, nextProps) => {
    return nextState.numMonthsToShow !== this.state.numMonthsToShow;
}

当我登录nextState.numMonthsToShow时,我得到了undefined,所以在查看它之后,它看起来像是组件实际上混淆了nextPropsnextState

以下是我的日志语句。

console log

下面是记录这些语句的位置:

代码语言:javascript
复制
shouldComponentUpdate = (nextState, nextProps) => {
    console.log('props:', this.props);
    console.log('nextProps:', nextProps);
    console.log('state:', this.state);
    console.log('nextState:', nextState);
    return nextState.numMonthsToShow !== this.state.numMonthsToShow;
  }

有人能帮我解释一下怎么回事吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-12 02:01:31

您正在做错误的事情,使用shouldComponentUpdate(nextProps, nextState)而不是shouldComponentUpdate(nextState, nextProps)

票数 0
EN

Stack Overflow用户

发布于 2019-01-12 02:04:45

JS函数中参数的顺序很重要。根据React docsshouldComponentUpdate的正确签名是shouldComponentUpdate(nextProps, nextState)

要实现所需的结果,您需要在函数中互换参数名称:

代码语言:javascript
复制
shouldComponentUpdate = (nextProps, nextState) => {
    return nextState.numMonthsToShow !== this.state.numMonthsToShow;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54151562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档