от
У меня есть компонент React, который выбирает данные с помощью хука
useEffect
, например, так:
const cache = {key: "data

Это запускает ловушку каждый раз при изменении key
или
options
. Однако я также кеширую данные локально и хочу, чтобы эффект запускался только при изменении
key
и
options
(поскольку для каждой комбинации клавиш / опций данные всегда будут одинаковыми). Есть ли чистый способ зависеть от комбинации
key
и
options
, а не от
key
ИЛИ ghuARsaG1JqlTumTo8?              

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

2 Ответы

0 голосов
от
Вы можете создать такую логику с помощью
useRef()
. Рассмотрим следующий пример и песочницу: https://codesandbox.io/s/react-hooks-useeffect-with-multiple-reqs-6ece5
const App = () =
0 голосов
от
Чтобы запустить эффект при изменении обоих значений, вам нужно использовать предыдущие значения и сравнивать их в ловушке при изменении ключа или параметров. Для этого вы можете написать хук usePrevious и сравнить старое и предыдущее состояние, как упомянуто в этом посте. Как сравнить oldValues и newValues в React Hooks useEffect?
function usePrevious(value) {
  const ref = useRef();
  useEffect(() =
...