Je fais un crochet personnalisé qui a un Google lorsque certains changements d'état.
Vous devriez pouvoir passer n'importe quel état dans un tableau.
import { useState, useEffect } from 'react'
const useFlatListUpdate = (dependencies = []) => {
const [toggle, setToggle] = useState(false)
useEffect(() => {
setToggle(t => !t)
}, [...dependencies])
return toggle
}
export default useFlatListUpdate
Et il devrait être utilisé comme
const toggleFlatList = useFlatListUpdate([search, selectedField /*, anything */])
Mais cela me donne l'avertissement suivant
React Hook useEffect a un élément spread dans son tableau de dépendances. Cela signifie que nous ne pouvons pas vérifier statiquement si vous avez passé les bonnes dependencies.eslint (react-hooks / exhaustive-deps)
J'ai aussi une autre situation où ça ne marche pas
const useFlatListUpdate = (dependencies = []) => {
const [toggle, setToggle] = useState(false)
useEffect(() => {
setToggle(t => !t)
}, dependencies)
return toggle
}
Cela me donne l'avertissement
React Hook useEffect a reçu une liste de dépendances qui n'est pas un littéral de tableau. Cela signifie que nous ne pouvons pas vérifier statiquement si vous avez passé les bonnes dependencies.eslint (react-hooks / exhaustive-deps)
Comment puis-je faire fonctionner cela sans l'avertissement et sans désactiver eslint?
useEffect(() => { setToggle(t => !t) }, [dependencies])