在getDefaultProps中创建唯一ID

时间:2015-04-21 14:15:03

标签: javascript reactjs

在我的组件getDefaultProps中,我返回了一个像{ id: idGenerator.unique() }这样的对象,它应该在每次方法调用时给我一个唯一的id。但是,react不会为每个实例执行getDefaultProps()方法,而只对组件执行一次。因此,每当我使用该组件时,我都会得到相同的 not-so-unique id。

是否可以将id挂钩到每个实例的props对象中?

1 个答案:

答案 0 :(得分:3)

来自道具的状态通常是反模式,但在这里可能有意义,例如:

var Foo = React.createClass({
   getInitialState: function() {
       return {
           id: this.props.id || idGenerator.unique()
       }
   }
   .....
});

只需使用this.state.id而不是道具。如果组件可能在某个时刻获得ID,则可以在componentWillReceiveProps中处理该