得到了一个组件,它使用一个单独的挂钩创建,但我无法传递任何值给该挂钩,我需要在我的用例。
const onEdit = (index: number) => useMediaLinkImage(img => {
setNodeImages(imgData => {
imgData[index] = {
...imgData[index],
image: {
...imgData[index].image,
image: img
}
}
return imgData
})
})
返回--------------
{
nodeImages.map(({ image, mode }, index) => <Image
key={index}
mode={mode}
image={image}
onEmpty={onEmpty}
onChange={onValueChange}
onSubmit={onSubmit}
onToggle={onToggle}
onEdit={() => onEdit(index)}
onAdd={addImage}
/>)
}
无法获取将其用作函数以获取onEdit引发错误的索引
React Hook "useMediaLinkImage" is called in function "onEdit" that is neither a React function component nor a custom React Hook function. React component names must start with an uppercase letter. React Hook names must start with the word "use".
2条答案
按热度按时间n53p2ov01#
它期望
onEdit
是应该返回JSX element
或null
或undefined
的组件,但您返回了useMediaLinkImage
挂钩,因为使用此arrow function
语法(index: number) => useMediaLinkImage
,它是您只需要使用不带
return
的括号。yqlxgs2m2#
您可以只在其他钩子内调用钩子,或者在React组件的主体内调用钩子。
在你的例子中,你必须 return 你想从钩子本身调用的函数:
然后在组件中: