Javascript React.DOM.p(null,消息)-解释null?
任何人都知道这行中的Javascript React.DOM.p(null,消息)-解释null?,javascript,reactjs,Javascript,Reactjs,任何人都知道这行中的null是什么: React.DOM.p(null, message); 我知道它是createElement周围的一个方便的包装,即 ReactElement createElement( string/ReactClass type, [object props], [children ...] ) 但是我很难理解为什么类型是null 这一行也是如此: React.DOM.div(null, 'Hello World!') 这些函数通常被称为,这意味着
null
是什么:
React.DOM.p(null, message);
我知道它是createElement
周围的一个方便的包装,即
ReactElement createElement(
string/ReactClass type,
[object props],
[children ...]
)
但是我很难理解为什么类型
是null
这一行也是如此:
React.DOM.div(null, 'Hello World!')
这些函数通常被称为,这意味着它们是生成具有特定类型属性的元素的函数 这大概就是这些工厂在幕后创建的方式:
function createFactory(type) {
return React.createElement.bind(null, type);
}
它以绑定函数的形式返回React.createElement
,其中this
绑定到null
,并且type
绑定到传入的任何内容,允许您为元素创建速记实例化函数:
// create a function that creates React <div> elements
let div = createFactory('div');
// create two divs using the div factory function
let div1 = div({ /* some props */ }, 'Div 1');
let div2 = div({ /* some props */ }, 'Div 2');
发生以下情况:
React.DOM.div
只是一个工厂函数,它在后台将'div'
作为第一个参数传递给React.createElement,React.createElement就是该类型,其他所有参数都作为剩余参数传递
基本思想:
// the function is created as a factory
React.DOM.div = createFactory('div');
// and used to create a <div> element
var myDiv = React.DOM.div(null, 'Hello World');
//函数是作为工厂创建的
React.DOM.div=createFactory('div');
//用于创建一个元素
var myDiv=React.DOM.div(null,“Hello World”);
作为第一个参数的div
值的设置方式与创建此工厂时的设置方式类似
因此,在您的例子中,
null
只是props
对象,而不是类型
。类型通过工厂绑定为div
,这意味着props
是第一个参数,'Hello World!'
string是children
参数。很好的答案。在最后一段中,我假设您的意思是将'div'作为第一个参数传递给CreateFactoryThank,很高兴提供帮助。事实上我不这么认为,我已经做了一个编辑来澄清:)
// the function is created as a factory
React.DOM.div = createFactory('div');
// and used to create a <div> element
var myDiv = React.DOM.div(null, 'Hello World');