如果我有一个通用的构成部分,它将在一段时期向任意儿童部分提供某种推进剂,例如:
const GenericComponent = <T extends {id: string}>(props: {fetch: () => T, child: React.ReactElement}) => {
const {id} = props.fetch()
return (
<div>{ props.child }</div> // <------------- how to pass in argument here?
)
}
with a child component that looks like this:
const PassedInComponent = (props: {id: string}) => {
return (
<div>{props.id}</div>
)
}
实现这一目标的最佳途径是什么?
从诸如idpropiprops>propis-children,然后用通用部分的新论点加以 clo:
<GenericComponent fetch={...} child={<PassedInComponent id={""} />} /> // <--- empty id prop passed in here
const GenericComponent = <T extends {id: string}>(props: {fetch: () => T, child: React.ReactElement}) => {
const {id} = props.fetch()
return (
<div>{ React.cloneElement(props.child, {id: id}) }</div> // <---- can clone the element and pass in new arguments like this
)
}
这个例子颇具争议,但不幸的是,由于其他制约因素,我不得不处理这一设想。
我的问题是:向儿童部分提供一只好战推进剂,然后是穿透剂。 衣着 内容似乎很差。 是否有更好的途径来实现这一目标?