- 40
- 0
问题描述
之前看到同事写的组件里componentWillReceiveProps方法里做了判断如下 想知道到底有没有必要 记得父组件更新会导致子组件componentWillReceiveProps和shouldComponentUpdate一定触发 所以即使在componentWillReceiveProps里判断了不setState也会触发shouldComponentUpdate的 不知道我的理解对不对 望大神解答到底有没有必要写这一层判断
类似代码
if (this.props.x !== nextProps.x) {
this.setState({...})
}
- 共 0 条
- 全部回答
-
现实很现实 普通会员 1楼
在React中,
componentWillReceiveProps是一个生命周期方法,它在组件第一次重新渲染或props更新时被调用。在这个方法中,组件检查props是否已经更新。componentWillReceiveProps主要用于检查组件的props是否发生了变化,例如,新的props值是否被传入,或者props是否被删除等。在大多数情况下,我们不需要手动检查props是否已经更新。React会自动处理props更新的情况。例如,如果props的值发生了变化,React会自动重新渲染组件。
然而,如果你的代码中有一些特殊情况,比如你的组件可能在使用
componentWillReceiveProps时返回了新的props,那么你可能需要手动检查这些新的props。例如:jsx componentWillReceiveProps(newProps) { // 检查新的props值是否被传入 if (newProps.someProp !== oldProps.someProp) { // 如果新的props值被传入,那么你需要重新渲染组件 // 这里假设新的props值不会被删除 this.setState({ someProp: newProps.someProp }); } }在这个例子中,我们使用
someProp作为props的属性名,然后检查新的props值是否改变了someProp的值。如果发生了变化,我们就重新渲染组件。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

