将道具与HigherOrderComponents合并

时间:2019-06-22 13:57:42

标签: material-ui

我正在看https://github.com/mui-org/material-ui/blob/1052126cd08f19a04543d829a29f9c30e218a330/docs/src/pages/styles/basics/AdaptingHOC.js#L27

我要为Gatsby项目做的事情是这样的:

export default withStyles(styles)(HigherOrderLayout)

我面临的问题是该组件还需要其他一些道具。

Layout.propTypes = {
  classes: PropTypes.object.isRequired,
  title: PropTypes.object.isRequired,
  children: PropTypes.array,
}

我不确定如何提供其他道具,并且遇到以下错误:

  

对象作为React子对象无效(找到:带有键的对象   {标题})。如果您打算渲染儿童集合,请使用   而不是数组。

我是一个完整的React n00b,所以无法理解帮助页面。他们的例子太简单了,我找不到一个可以实现我想要实现的例子。

任何建议都值得赞赏。

1 个答案:

答案 0 :(得分:0)

  • 问题是在render方法中渲染了多个元素, 相反,您应该将其包装为一个。

  • 您也可以使用将其包装 一个DOM节点。

看到一个对象无效,因为React子错误可能意味着一些不同的地方出了问题。例如,可能是因为JSX元素中呈现的项目是对象而不是基元(因此请确保不要在期望基元的地方传递对象)。