到底有什么反应.CREATEELEMENT接受为参数



文档说其类型为类型,但是在以下两个示例中,它们都起作用,而第一个示例实际上拿了一个函数。这是否意味着文档是错误的?似乎createElement不仅采用类型,还可以返回元素的函数。对我来说,这很棘手。

var title = function (props) {
  return (
    React.createElement(
      'h1',
      null,
      'title'
    )
  );
};
ReactDOM.render(
  React.createElement(title),
  document.getElementById('app')
);

vs。

var title = React.createElement(
  'h1',
  null,
  'title'
)
ReactDOM.render(
  title,
  document.getElementById('app')
);

react文档还在下一行中说明了这一点:

类型参数可以是标签名称字符串(例如'div''span'),也可以是React组件类型(类或函数)。

因此,您可以将字符串作为类型传递,该字符串创建本机元素,例如divh1

React.createElement('h1', null, 'title');

您也可以将函数作为第一个参数,即是一个反应组件

var title = function (props) {
  return (
    React.createElement(
      'h1',
      null,
      'title'
    )
  );
};
React.createElement(title);

在这里, title a react组件,更具体地说是 function component ,因此您可以使用该类型创建一个元素。

最新更新