Я делаю пользовательский хук, который имеет переключатель при изменении состояния.
Вы должны быть в состоянии передать любое состояние в массиве.
import { useState, useEffect } from 'react'
const useFlatListUpdate = (dependencies = []) => {
const [toggle, setToggle] = useState(false)
useEffect(() => {
setToggle(t => !t)
}, [...dependencies])
return toggle
}
export default useFlatListUpdate
И это должно бытьиспользуется как
const toggleFlatList = useFlatListUpdate([search, selectedField /*, anything */])
Но это дает мне следующее предупреждение
React Hook useEffect имеет элемент расширения в своем массиве зависимостей. Это означает, что мы не можем статически проверить, правильно ли вы передали правильный файл dependencies.eslint (response-hooks / исчерпывающий deps)
У меня также есть другая ситуация, когда она не работает
const useFlatListUpdate = (dependencies = []) => {
const [toggle, setToggle] = useState(false)
useEffect(() => {
setToggle(t => !t)
}, dependencies)
return toggle
}
Это дает мне предупреждение
React Hook useEffect был передан список зависимостей, который не является литералом массива. Это означает, что мы не можем статически проверить, правильно ли вы передали правильный файл dependencies.eslint (реагировать-зацепки / исчерпывающе-deps)
Как я могу сделать это с этой работой без предупреждения и без отключенияeslint