无法使用React.cloneElement传递带有道具的孩子?

时间:2018-08-10 04:15:52

标签: javascript reactjs ecmascript-6

我收到此错误

invariant.js:42 Uncaught Error: Element type is invalid

这样做

const ListWrap = ({ children, onChange }) => {
  return <div>{React.cloneElement(children, { onChange })}</div>
}

但是我什么时候没问题

const ListWrap = ({ children }) => {
  return <div>{children}</div>
}

但是我不能仅仅通过return <div>{children}</div>来传递道具。任何线索出了什么问题?

1 个答案:

答案 0 :(得分:1)

React.cloneElement带一个孩子。这应该解决它:

const ListWrap = ({ children, onChange }) => {
  return (
    <div>
    {React.Children.map(children, child => React.cloneElement(child, { onChange }))}
    </div>
  );
}