React通过扩展运算符向克隆元素添加新道具

时间:2017-07-25 16:25:21

标签: javascript reactjs properties clone

我有一个像这样的容器:

const ReactContainer = ({ children, ...rest }) => React.cloneElement(children, rest);

现在,我想向克隆元素添加新道具 - countflag

所以我尝试了这个:

const ReactContainer = ({ children, ...rest }) => {
    const count = 0;
    const flag = false;

    return React.cloneElement(children, {count, flag}, rest);
};

但这不起作用,我尝试了其他变化。如何将这些新道具添加到克隆元素中以保持扩展操作符的简单性?

1 个答案:

答案 0 :(得分:4)

请试试这个:

const ReactContainer = ({ children, ...rest }) => {
    const count = 0;
    const flag = false;

    return React.cloneElement(children, {...rest, count, flag});
};

请注意,在上面的示例中,组件功能定义中使用的...rest充当rest parameters syntaxcloneElement中的column_2充当spread syntax