假设我已经定义了一个组件:
class Co extends React.Component {
render = () => {
const name = this.props.name;
return (
<p>Hello, my name is {name}</p>
)
}
}
并将其存储在变量中:
const co = <Co />;
如何使用变量设置组件的道具? co.props.set
会有效吗?
答案 0 :(得分:4)
据我所知,您不想使用JSX语法渲染组件,而是使用存储的变量。你可以看一下React.cloneElement
。这应该做你想要的:
{React.cloneElement(co, {name: 'hans'})}
请参阅:https://facebook.github.io/react/docs/top-level-api.html#react.cloneelement
答案 1 :(得分:0)
您可以照常设置道具
<Co name="Name"/>
如果element是某个组件的子元素,那么您可以使用React.cloneElement()
class Parent extends React.Component {
render = () => {
const name = this.props.name;
return (
<SomeComp><Co/></SomeComp>
)
}
}
class SomeComp extends React.Component {
render = () => {
const name = this.props.name;
return (
<SomeComp>{React.cloneElement(this.props.children, {name:"Name"})}</SomeComp>
)
}
}