Javascript 检测变量是jsx元素还是路由器链接的正确方法
我有以下方法:Javascript 检测变量是jsx元素还是路由器链接的正确方法,javascript,reactjs,react-router,jsx,Javascript,Reactjs,React Router,Jsx,我有以下方法: const MyComponent = ({ value }) => { if (isRouterLink(value)) { return <span>Is router link</span> } if (isElement(value)) { return <span>Is an element</span> } return <span>Is just a strin
const MyComponent = ({ value }) => {
if (isRouterLink(value)) {
return <span>Is router link</span>
}
if (isElement(value)) {
return <span>Is an element</span>
}
return <span>Is just a string</span>
}
但这听起来有点脏,因为
$$typeof
似乎是私有数据。这是正确的检查方法吗?为什么需要这样做?因为我需要根据参数是元素、对象还是链接做不同的事情为什么需要这样做?因为我需要根据参数是元素、对象还是链接做不同的事情
function isRouterLink(value) {
return !!value.$$typeof
}
function isElement(value) {
return !!value.type
}