通过道具操纵国家是否正确?

时间:2016-01-28 21:22:41

标签: javascript reactjs

使用React通过操纵子元素中的props来操作父元素中的状态是正确的(示例)吗?或者是返回对象和显式setState的正确方法?

下面的例子只是为了显示我在操纵变量的位置:

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>);
  }
});

1 个答案:

答案 0 :(得分:1)

是的,您应该了解您的父母的状态&#39;上课,并将其作为道具传递给您的孩子&#39;类。

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

person = {...} 

再次在Child的渲染类中。

也许你的意思

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

这是在docs中: ...道具是不可变的:它们是从父母那里传来的,并且是“拥有的”#34;由父母。