Javascript 在存储在变量中的组件中传递道具

Javascript 在存储在变量中的组件中传递道具,javascript,reactjs,Javascript,Reactjs,所以我有一个简单而直接的问题 所以我们可以将react组件存储在变量中。但是现在,我想知道,如果组件存储在变量中,是否可以将props传递给组件 ////////////////////////////////////////////// //////正常和典型反应成分 ////////////////////////////////////////////// 常量myComponent= 渲染(){ 返回myComponent; } /////////////////////////////

所以我有一个简单而直接的问题

所以我们可以将react组件存储在变量中。但是现在,我想知道,如果组件存储在变量中,是否可以将props传递给组件

//////////////////////////////////////////////
//////正常和典型反应成分
//////////////////////////////////////////////
常量myComponent=
渲染(){
返回myComponent;
}
////////////////////////////////////////
//////我想要什么
////////////////////////////////////////
常量myComponent=
//我希望能够在这里添加这些道具
//类似myComponent.addProps({'name':'jamie'})的东西;
渲染(){
返回myComponent;
}

我的问题远远不止于此。我想知道我们在React API中是否有这样的功能。

您可以像下面这样尝试

React.cloneElement(
  myComponent,
  {prop1: "prop value"}
)

参考文档:

您也可以使用setProps,如

myComponent.setProps({name: 'jamie'});

您需要将变量名大写,并使用正常的Jsx语法:

const MyComponent=
渲染(){
返回
}
这允许在阵列中存储组件:

导入{
EmailShareButton,
FacebookShareButton,
InstapaperShareButton,
LineShareButton,
LinkedinShareButton,
LivejournalShareButton,
MailruShareButton,
OKShareButton,
PinterestShareButton,
口袋按钮,
RedditShareButton,
电报按钮,
TumblrShareButton,
推特共享按钮,
毒蛇猎扣,
VKShareButton,
什么是哈雷按钮,
工作区共享按钮,
}从“反应共享”
导出默认类,如Share扩展组件{
共享按钮=[
EmailShareButton,
FacebookShareButton,
InstapaperShareButton,
LineShareButton,
LinkedinShareButton,
LivejournalShareButton,
MailruShareButton,
OKShareButton,
PinterestShareButton,
口袋按钮,
RedditShareButton,
电报按钮,
TumblrShareButton,
推特共享按钮,
毒蛇猎扣,
VKShareButton,
什么是哈雷按钮,
工作区共享按钮,
]
渲染=()=>{
返回(
{this.shareButtons.map(
ShareButton=>
)}
)
}
}

但为什么要将组件存储在变量中?React已经根据
render()
返回的内容为您完成了所有智能差分,所以只需使用
render(){return;}
,让React完成它的工作。@Mike'Pomax'Kamermans正如我提到的,问题不仅仅是差分等。我有大约数百个组件,我想应用,用不同的逻辑过滤和映射这些组件,我想添加完全动态的道具。生成所有组件作为渲染调用的一部分,如果有数百个组件,请组织它们。React是一个UI库,您的UI总是可以简化为“控制少数其他事物的事物”,而不是数百种事物。对要生成组件的数据使用state/props,然后在render()中构建这些组件,并让React决定这是否意味着它实际重建它们。这就是它的设计目的。使用
属性,它的作用是什么,其余的就用什么。我相信你更关心的是其他东西,而不是问题。有一个原因,我排除了其他东西,只是问了这个问题。我只是想知道在React生态系统和API中我们是否有这样的功能。@Mike'Pomax'Kamermans记得你注意了很多其他细节,比如React中的扩散算法和。。。。如果把那些有问题的人包括进来,会更让人困惑。。。。我说过,我提到我的目标是React API,但你仍然关心我的代码结构……非常感谢@Asraful,这对我帮助很大。只是用了它,解决了我的问题。也许我觉得这不是很有效,但你所展示的正是我所需要的。作为官方文件的答案。我不考虑效率。