文档说其类型为类型,但是在以下两个示例中,它们都起作用,而第一个示例实际上拿了一个函数。这是否意味着文档是错误的?似乎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组件类型(类或函数)。
因此,您可以将字符串作为类型传递,该字符串创建本机元素,例如div
或h1
:
React.createElement('h1', null, 'title');
您也可以将函数作为第一个参数,即是一个反应组件:
var title = function (props) {
return (
React.createElement(
'h1',
null,
'title'
)
);
};
React.createElement(title);
在这里, title
是 a react组件,更具体地说是 function component ,因此您可以使用该类型创建一个元素。