如何记忆map循环中生成的回调函数?这(显然)会产生一个错误:
const SomeComponent = ({ items }: { items: ItemData[] }) => {
const getItemCallback = (item: ItemData) => (e: React.MouseEvent) => {
e.preventDefault();
//do something with item
}
return <div>
{items.map(item => {
const callback = useCallback(getItemCallback(item));
return <Item title={item.title} itemCallback={callback} />
})}
</div>
}
2条答案
按热度按时间j13ufse21#
将
getItemCallback
Package 在useCallback
中并将其传递给组件:然后,组件调用回调函数,并传递
item
以创建一个用useCallback
Package 的新函数:xzv2uavs2#