docs表示它采用了一种类型,但在下面的两个例子中,它们都有效,第一个例子实际上是一个函数。这不是说文档错了吗?似乎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')
);
答案 0 :(得分:1)
React documentation也在下一行说明了这一点:
type参数可以是标记名称字符串(例如
'div'
或'span'
),也可以是React component类型(类或函数)。
因此,您可以传递字符串作为类型,这会创建div
或h1
等原生元素:
React.createElement('h1', null, 'title');
您还可以将函数作为第一个参数传递,它是一个React组件:
var title = function (props) {
return (
React.createElement(
'h1',
null,
'title'
)
);
};
React.createElement(title);
此处,title
是一个React组件,更具体地说是一个功能组件,因此您可以创建一个具有该类型的元素。