React元素被设计为不可变的。通常,如果您重新构建应用程序以构建合适的props,而不是稍后对其进行变异,那么您的应用程序将最容易理解,React认为是这种情况。也就是说,您可以使用React.cloneElement获得所需的效果:
render: function() {
return React.cloneElement(this.doRender(), {
style: {border: '1px solid red'}
});
},
(请注意,如果您的doRender()
函数返回了自定义组件,则更改道具将更改该组件的道具,而不是所生成的底层DOM组件。没有办法将其渲染为DOM组件并更改该组件的道具,除非手动进行更改中的DOMcomponentDidMount
。)