作用: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进制的数值。