javascript - How do i render a react component passed in as a props with additional props?
问题描述
I have a Foo component inside Bar component
import Foo from './foo';
<Bar component={Foo}>
Now, i want to render this.props.component with additional props, foobar = 'LOL';
Something like this
<this.props.component foobar='LOL'/>
I found 3 ways to do it.
Clone
render(){
let newFoo = {...this.props.component}
newFoo.props = {...newFoo.props, foobar: 'LOL'}}
return(<div> {newFoo}</div>);}
But i don't want to clone.
Callback
render(){
!this.props.component.props.foobar&&this.props.addPropsToFoo(foobar: 'LOL');
return(<div> {this.props.component}</div>);
But, i do not want to use callback in this case.
HOC, but i'm intern and this is advanced guide.
解决方案
如果你有一个像
import Foo from './foo';
<Bar component={Foo}>
您将没有任何道具,因此您可以如下Foo
呈现组件Foo
const Comp = this.props.component;
<Comp foobar='LOL' />
这样,您也不会克隆组件。
推荐阅读
- r - 管道 R 中字符的拆分向量 - 仅保留拆分的第一部分
- python - 函数评估发散,取决于输入精度
- javascript - 在平面列表中添加删除按钮反应原生
- python - Python让类函数打印它调用的函数的文档字符串
- python - conda环境被激活,但是python控制台说环境没有被激活
- reactjs - 显示文本而不是控制台日志
- vb.net - 使用 sudo 执行 SSH 命令行,然后输入密码
- html - 如何将我的 html 集成到typo3 CMS?
- java - 在java中过滤一个RDD以分成2个新的RDD
- r - plyr::mapvalues 的 dplyr 替代品(使用字典重新编码)