InstruçÔes
Passo 30
O hook
useCallback() recebe dois argumentos: uma função e um array de dependĂȘncias. A função serĂĄ recriada somente se uma das dependĂȘncias mudar.
Aqui estĂĄ a sintaxe bĂĄsica para useCallback():
const memoizedCallback = useCallback(() => {
// Your function logic
return value;
}, [dependency1, dependency2]);
Defina toggleItem igual a useCallback(), e passe para ele uma função anĂŽnima que recebe item como argumento. Mova a lĂłgica da sua função toggleItem() existente para dentro da função anĂŽnima, onde setSelectedItems Ă© chamado. Finalmente, adicione setSelectedItems como uma dependĂȘncia no array de dependĂȘncias.
Depois disso, vocĂȘ terminou de otimizar! Seu app ainda deve funcionar da mesma forma, mas vocĂȘ verĂĄ seus logs no console apenas quando o estado query mudar ou quando a função toggleItem() for recriada.
O que fazer:
Testes:
- VocĂȘ deve definir `toggleItem` igual a chamar o hook `useCallback()`.
- VocĂȘ deve passar uma função anĂŽnima que recebe `item` como argumento para `useCallback()`.
- VocĂȘ deve mover a lĂłgica da sua função `toggleItem()`, começando com a chamada para `setSelectedItems()`, para dentro da função anĂŽnima.
- VocĂȘ deve adicionar `setSelectedItems` como a Ășnica dependĂȘncia no array de dependĂȘncias.
Preview