作用:
isValidElement是ReactElement对象中的一个方法,可以通过react.isValidElement(object)来调用,它的作用是验证判断参数object是否为有效的ReactElement,返回boolean值。
方法定义:
/**
* 验证 object 参数是否是 ReactElement. 返回布尔值
* 验证成功的条件:
* object 是对象
* object 不为 null
* object 对象中的 $$typeof 属性值为 REACT_ELEMENT_TYPE
*/
export function isValidElement(object) {
return (
typeof object === 'object' &&
object !== null &&
object.$$typeof === REACT_ELEMENT_TYPE
);
}
// src/react/packages/shared/ReactSymbols.js
export const REACT_ELEMENT_TYPE = hasSymbol
? Symbol.for('react.element')
: 0xeac7;
总结:
判断的条件有三个,需要同时满足:
1、必须是对象
2、不能为空
3、对象中要有$$typeof 属性,且值必须为 REACT_ELEMENT_TYPE这样的一个常量值。它是一个Symbol值或者16进制的数值。