React:向现有组件添加道具
React: adding props to an existing component
我正试图找出如何用额外的道具克隆现有元素。
供参考:
this.mainContent = <Hello message="Hello world!" />
我试着做一些类似的事情
React.createElement(this.mainContent, Object.assign({},
this.mainContent.props, { anotherMessage: "nice to meet ya!" }));
但它不起作用。
我该如何做到这一点?
您需要克隆元素并使用React.cloneElement
添加附加道具,例如:
const ClonedElementWithMoreProps = React.cloneElement(
this.mainContent,
{ anotherMessage: "nice to meet ya!" }
);
// now render the new cloned element?
如果您不想使用React.cloneElement()
,可以使用以下代码段:
function AddExtraProps(Component, extraProps) {
return <Component.type {...Component.props} {...extraProps} />;
}
React.createElement()
将字符串或React类类型作为其第一个参数,因此如果您试图克隆元素,则这将不起作用。
当然,取而代之的是React.cloneElement()
,它对另一个React元素进行了深度复制,并可以选择性地提供新的道具。
var foo = React.cloneElement(this.mainContent, {anotherMessage: "nice to meet ya!"});
应该有效。
相关文章:
- 如何定义组件添加到DataItem的顺序
- 通过格式化将jquery移动组件动态添加到列表视图中
- React-router 在添加历史记录后不会渲染组件
- 将自定义属性添加到 vuejs 组件
- React:向现有组件添加道具
- react-将图标添加到组件内部的标题中
- 在React中动态添加子组件
- 向React中的高阶组件添加方法
- 动态添加子组件值时,如何从父组件访问这些值
- Tabtastic,javascript组件..如何添加eventlistener来捕获选项卡单击
- 如何在 ExtJS5 中从控制器向视图添加组件
- 添加组件时,反应最大调用栈
- 如何在ember js中以编程方式在其他组件/视图中添加组件或视图
- 无法在Enyo中动态添加组件(按钮)
- 如何添加组件“隐藏”然后把它滑进去
- 为每个reactJS组件添加组件
- 向容器中添加组件不起作用
- 如何在另一个组件中有条件地添加组件
- 在vue.js中动态添加组件不工作
- 在ExtJS中向选项卡窗格添加组件