首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >React -是否所有状态属性都需要由getDerivedStateFromProps返回?

React -是否所有状态属性都需要由getDerivedStateFromProps返回?
EN

Stack Overflow用户
提问于 2018-07-13 08:14:00
回答 1查看 122关注 0票数 3

在React组件中使用getDerivedStateFromProps生命周期方法时,返回的状态是完全覆盖组件的现有状态,还是只更新返回的特定状态属性?例如,

代码语言:javascript
复制
class foo extends Component {
  constructor() {
    this.state = {
      one: true,
      two: false,
    }
  }

  getDerivedStateFromProps(props, state) {
    ...
    return {
      one: false,
    }
  }

  ...  
}

状态是否会是:

代码语言:javascript
复制
{ one: false }

代码语言:javascript
复制
{
  one: false,
  two: false,
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-13 08:19:04

它将更新您返回的对象中存在的状态片段,并保持另一个状态as it is stated in the documentation不变

getDerivedStateFromProps在调用render方法之前调用,无论是在初始装载时还是在后续更新时都是如此。它应该返回一个对象来更新状态,或者返回null来不更新任何内容。

示例

代码语言:javascript
复制
class App extends React.Component {
  state = { one: 1 };

  static getDerivedStateFromProps() {
    return { two: 2 };
  }

  render() {
    return <div>{JSON.stringify(this.state)}</div>;
  }
}

ReactDOM.render(<App />, document.getElementById('root'));
代码语言:javascript
复制
<script src="https://unpkg.com/react@16.4.1/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom@16.4.1/umd/react-dom.production.min.js"></script>

<div id="root"></div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51316068

复制
相关文章

相似问题

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