道具和州的相同数据

时间:2015-04-10 15:05:28

标签: reactjs

想象一个Table组件,它接收行作为其道具。

在我看来,行也代表组件的状态,因为不同的行顺序会导致不同的视图呈现。

是否可以,在状态和/或道具中拥有相同的属性/数据?

短代码示例

var TableComponent = React.createClass({


  // ...

  getInitialState() {
    return {
      rows: this.props.rows
    };
  },

  // ...

})

React.render(<TableComponent rows={[...]} />, document.body);

2 个答案:

答案 0 :(得分:1)

这是React组件从props接收数据并将其存储在状态时相当普遍(并且据我所知)。唯一的复杂因素是处理新的传入道具(例如更改父组件中的行集的ajax添加或删除)以及管理您在状态中应用于副本的变换(换句话说,如果是用户已经按列对表的行进行了排序并重新排序了行的状态副本,您可能希望它从传入的道具中反映在新状态中。)

答案 1 :(得分:0)

国家代表着变化。

您拥有表的行数据,但在组件的生命周期中,它永远不会更改。

排序的顺序,或哪些列应显示或隐藏等,这是表的状态。

在渲染方法中,您将此类状态应用于作为属性传入的行数据。您的表组件可以只考虑行数据是一个静态值,它知道如何根据它的状态以不同的方式呈现。