Я создал приложение для реагирования, в котором у меня есть список элементов с действием удаления. Я знаю, что если я передаю это действие удаления от родителя (контейнера элементов), я могу использовать useCallback в родительском элементе, чтобы предотвратить ненужное воссоздание метода удаления.
Но что произойдет, если я определю метод удаления в компоненте элемента и использую в нем useCallback? не сработает? не будет ли он использовать тот же заученный метод, не создавая каждый раз новый?
другими словами, каков объем запоминания? это глобально? или на компонент?
псевдокод:
function ListComponent(){
let arr = [1,2,3]
return <div>
{
arr.map(item => <Item id={item} />
}
</div>
}
function Item({id}){
let memorizedDelete = useCallback(() => alert("deleting"))
return <div onClick={memorizedDelete} > {id} </div>
}
спасибо
useCallback
без массива зависимостей, как вы здесь делаете, означает, что функция не запомнена. См .: stackoverflow.com/a/55027723/882638 - person ericgio   schedule 27.01.2021Item
будет создана отдельная мемоизированная функция. - person ericgio   schedule 27.01.2021