2017-07-25 50 views
0

我有一个容器,像这样:阵营增添新道具克隆的元素与传播运营商

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); 
}; 

但是这不起作用,我试过其他变化。我如何将这些新的道具添加到克隆的元素中,以简化传播操作符?

回答

3

请试试这个:

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

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

请注意,例如...rest的组件函数定义的行为作为rest parameters syntaxcloneElement它作为spread syntax以上。