在我的组件的getDefaultProps
中,我返回了一个对象,如{ id: idGenerator.unique() }
,它应该为每个方法调用提供一个唯一的ID。但是,响应不会对每个实例执行getDefaultProps()
方法,但对组件只执行一次。因此,无论何时使用该组件,我最终都会使用相同的不太唯一的 ID。在getDefaultProps中创建唯一的ID
是否有其他方法将id绑定到每个实例的道具对象中?
在我的组件的getDefaultProps
中,我返回了一个对象,如{ id: idGenerator.unique() }
,它应该为每个方法调用提供一个唯一的ID。但是,响应不会对每个实例执行getDefaultProps()
方法,但对组件只执行一次。因此,无论何时使用该组件,我最终都会使用相同的不太唯一的 ID。在getDefaultProps中创建唯一的ID
是否有其他方法将id绑定到每个实例的道具对象中?
从道具国家通常是一个反模式,但可能是有意义的有,例如:
var Foo = React.createClass({
getInitialState: function() {
return {
id: this.props.id || idGenerator.unique()
}
}
.....
});
,只是使用this.state.id而不是道具。如果组件有可能在某个时候获得ID,则可以在componentWillReceiveProps中处理该组件
这绝对适合我的使用情况。谢谢! – Taig
它是否需要成为道具?你有时会通过ID吗?否则,它可能是有意义的状态 – wgcrouch
那么,这将是一个很好的默认道具,以便我可以轻松地覆盖它时,我想提供一个自定义的ID。如果这不起作用,我也会接受不同的方法。 – Taig