Reactjs 对平面列表呈现项的React本机无效钩子调用

Reactjs 对平面列表呈现项的React本机无效钩子调用,reactjs,react-native,react-hooks,Reactjs,React Native,React Hooks,所以我有一个react原生平面列表,在每个平面列表中使用钩子 export const RenderEntityList = (props) => { const { entityList } = props; const getEntityName = useCallBack((entity) => { //...get Entity name from list }, [entityList]); return <FlatLi

所以我有一个react原生平面列表,在每个
平面列表中使用钩子

export const RenderEntityList = (props) => {
    const { entityList } = props;
    const getEntityName = useCallBack((entity) => {
        //...get Entity name from list
    }, [entityList]);
    return <FlatList
              data={entityList}
              renderItem={RenderEntity({ getEntityName })}
           />
};


const RenderEntity = (props) => {
    const { getEntityName } = props;
    return (props) => {
        const { item: entity } = props;
        // This is where i get the error Invalid hook call;
        const [entityName, setEntityName] = useState('');
        useEffect(() => {
            setEntityName(getEntityName(entity))
        }, [entity])
        return <ListItem
                  title={entityName}
               />
};
export const RenderEntityList=(props)=>{
const{entityList}=props;
const getEntityName=useCallBack((实体)=>{
//…从列表中获取实体名称
},[entityList]);
返回
};
const RenderEntity=(道具)=>{
const{getEntityName}=props;
返回(道具)=>{
常量{item:entity}=props;
//这就是我得到错误无效钩子调用的地方;
常量[entityName,setEntityName]=useState(“”);
useffect(()=>{
setEntityName(getEntityName(实体))
},[实体])
返回
};
我不确定我到底做错了什么。 在此方面的任何帮助都将不胜感激

谢谢你。
Amol

您使用的是
RenderEntity
作为
功能
而不是
功能组件

改变这个

renderItem={RenderEntity({ getEntityName })}
与:

renderItem={({item, index, separators}) => <RenderEntity item={item} getEntityName={getEntityName}/> }
renderItem={({item,index,separator})=>}

Hmmm,我会尝试一下。出于好奇,我们可以像我在问题中提到的那样使用咖喱吗?首先检查
getEntityName
是否返回任何内容,如果返回,那么您可以使用它来获取entityname返回字符串,我可以使用React.createElement吗?