zoo*_*opz 33 javascript reactjs
我试图弄清楚如何使用其他道具克隆现有元素.
以供参考:
this.mainContent = <Hello message="Hello world!" />
Run Code Online (Sandbox Code Playgroud)
我试图做类似的事情
React.createElement(this.mainContent, Object.assign({},
this.mainContent.props, { anotherMessage: "nice to meet ya!" }));
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我怎么做到这一点?
Sal*_*kar 52
你需要克隆元素并添加额外的道具,React.cloneElement例如:
var clonedElementWithMoreProps = React.cloneElement(
this.mainContent,
{ anotherMessage: "nice to meet ya!" }
);
// now render the new cloned element?
Run Code Online (Sandbox Code Playgroud)
Eug*_*yeu 18
如果您不想使用React.cloneElement(),可以使用以下代码段:
function AddExtraProps(Component, extraProps) {
return <Component.type {...Component.props} {...extraProps} />;
}
Run Code Online (Sandbox Code Playgroud)
React.createElement() 将字符串或React类类型作为其第一个参数,因此如果您尝试克隆元素,则无法使用.
当然,还有React.cloneElement()代替,这确实的另一个深层副本阵营元素,可以选择提供新的道具.
var foo = React.cloneElement(this.mainContent, {anotherMessage: "nice to meet ya!"});
Run Code Online (Sandbox Code Playgroud)
应该管用.
| 归档时间: |
|
| 查看次数: |
30839 次 |
| 最近记录: |