如何将 React 组件作为子组件传递并在此组件内添加道具

How to pass React component as a child and add props inside this conponent

我有对象

const obj = {
 name: 'Milk', component <Milk />;
 name: 'Bread', component <Bread />;
 name: 'Tea', component <Tea />;
}

我将这个对象作为 prop 发送给子组件。在这个子组件中,我应该发送选择的组件并添加数量作为道具

const view = obj.map((item) => item.name === product.name)
return (
 {view.component}
) 

结果只发送了 <Milk />,但我需要 <Milk quantity={quantity} /> 我能以某种方式向对象添加道具吗?我在父组件里做不到。

您可以 re-structure 您的对象是这样的:

const obj = {
  Milk: <Milk />,
  Bread: <Bread />,
  Tea: <Tea />,
};

然后,在检索到它之后,您可以使用 cloneElement 方法添加道具:

const view = obj[product.name]
if (view) {
    const viewWithProps = React.cloneElement(view, { quantity: <custom-quantity> })
    return (
        {viewWithProps}
    )
}