通过道具操纵状态是否正确

Is it correct to manipulate state via props?

本文关键字:是否 状态 操纵      更新时间:2023-09-26

使用 React 通过操作子元素中的 props 来操作父元素中的状态是否正确(示例)?还是返回对象并显式设置状态的正确方法?

下面的示例只是为了显示我在哪里操作变量:

const Parent = React.createClass({
  getInitialState: function() {
    person: {name: 'john', age: 47},
  },
  render: function() {
    <div>
      <Child person = {this.state.person} />
    </div>
  }
});
const Child = React.createClass({
  render: function() {
    let person = this.props.person;
    person = {name: 'john doe', age:30};
    return(<div> Person {person} </div>);
  }
});

是的,您应该获取"父"类的状态并将其作为道具传递给"子"类。

的例子是正确的,除了我不确定你为什么要这样做

person = {...} 

再次在孩子的渲染课上。

也许你的意思是

const Child = React.createClass({
   render: function() {
      let person = this.props.person;
      return(<div> Person {person} </div>);
   }
});

这是在文档中:...道具是不可变的:它们从父级传递并由父级"拥有"。