Sto realizzando un hook personalizzato che ha un toogle quando alcuni stati cambiano.
Dovresti essere in grado di passare qualsiasi stato in un array.
import { useState, useEffect } from 'react'
const useFlatListUpdate = (dependencies = []) => {
const [toggle, setToggle] = useState(false)
useEffect(() => {
setToggle(t => !t)
}, [...dependencies])
return toggle
}
export default useFlatListUpdate
E dovrebbe essere usato come
const toggleFlatList = useFlatListUpdate([search, selectedField /*, anything */])
Ma mi dà il seguente avvertimento
React Hook useEffect ha un elemento spread nel suo array di dipendenze. Ciò significa che non possiamo verificare staticamente se hai superato le dipendenze.eslint corrette (reazioni-hook / esaustivi-deps)
Ho anche un'altra situazione in cui non funziona
const useFlatListUpdate = (dependencies = []) => {
const [toggle, setToggle] = useState(false)
useEffect(() => {
setToggle(t => !t)
}, dependencies)
return toggle
}
Questo mi dà l'avvertimento
React Hook useEffect ha ricevuto un elenco di dipendenze che non è un array letterale. Ciò significa che non possiamo verificare staticamente se hai superato le dipendenze.eslint corrette (reazioni-hook / esaustivi-deps)
Come posso farlo funzionare senza preavviso e senza disabilitare eslint?
useEffect(() => { setToggle(t => !t) }, [dependencies])