Javascript 判断函数是功能组件还是普通函数的可靠方法
给定一个功能组件:Javascript 判断函数是功能组件还是普通函数的可靠方法,javascript,reactjs,Javascript,Reactjs,给定一个功能组件: const AComponent = (props) { // ... return <div>{...}</div>; }; 这样即使代码被传输和缩小,它也能工作 我想检查一下fn.中的name是否为真正的功能组件,例如: 函数是真正的函数组件(fn){ //缩小时不起作用 返回类型fn==“函数”&&fn.name[0]==fn.name[0].toUpperCase(); } 但是当我缩小代码时,fn.name是空的,上
const AComponent = (props) {
// ...
return <div>{...}</div>;
};
这样即使代码被传输和缩小,它也能工作
我想检查一下fn.中的name
是否为真正的功能组件
,例如:
函数是真正的函数组件(fn){
//缩小时不起作用
返回类型fn==“函数”&&fn.name[0]==fn.name[0].toUpperCase();
}
但是当我缩小代码时,fn.name
是空的,上面的代码会中断
谢谢你的关注
编辑:我正在努力实现以下目标:
function MyComponent({
componentForDataItem = AComponent,
data = []
} = {}) {
const componentIsReactComponent = isTrulyFunctionalComponent(componentForDataItem);
return data.map(dataItem => {
// componentForDataItem can either be a functional component
// or a function returning a React component to use for the given dataItem.
const Component = componentIsReactComponent
? componentForDataItem
: componentForDataItem(dataItem);
return (
<Component {...} />
});
}
<MyComponent data={[...]} /> // Uses the default AComponent for all items of data
<MyComponent data={[...]} componentForDataItem={dataItem => {
// Custom logic for a specific dataItem, e.g.:
return if dataItem.value === "check" ? AnotherComponent : AComponent;
}} />
功能部件({
componentForDataItem=组件,
数据=[]
} = {}) {
常量组件reactcomponent=isTrulyFunctionalComponent(数据项的组件);
返回data.map(dataItem=>{
//componentForDataItem可以是功能组件
//或返回React组件以用于给定数据项的函数。
常量组件=组件反应组件
?数据项的组件
:componentForDataItem(数据项);
返回(
});
}
//对所有数据项使用默认组件
{
//特定数据项的自定义逻辑,例如:
如果dataItem.value==“check”?则返回另一个组件:一个组件;
}} />
你到底想做什么?React函数组件是常规的普通函数。请检查我的编辑。@drewrese我知道,但我仍然需要区分React管理的常规普通函数(接收道具,可能有挂钩或没有挂钩等)还有一个普通函数,在我的例子中,它充当特定数据项的工厂。请检查我的编辑。除非执行该函数,否则无法判断。函数GoGuess(){return Math.random()>0.5?:“Hello”}
你到底想做什么?React函数组件是常规的普通函数。请检查我的编辑。@drewrese我知道,但我仍然需要区分React管理的常规普通函数(接收道具,可能有挂钩或没有挂钩等)还有一个普通函数,在我的例子中,它充当特定数据项的工厂。请检查我的编辑。除非执行该函数,否则无法判断。函数GoGuess(){return Math.random()>0.5?:“Hello”}