Реакция useEffect, список зависимостей не работает - PullRequest
0 голосов
/ 03 февраля 2020

Я уверен, что неправильно понял это. У меня есть следующий компонент

const Comp = () => {
    const filter = 'a';

    useEffect(() => {
      console.log('executing effect');
      loadFriends();
    }, [filter]);


    return (
      <Div>
        {friendsFilter}
      </Div>
    );
  };

Теперь, насколько я понимаю, поскольку список зависимостей на useEffect is filter реакции не должен запускать эффект при повторной визуализации компонента? Тем не менее, кажется, запустить его. Я что-то здесь не так понимаю?

Ответы [ 2 ]

0 голосов
/ 03 февраля 2020

Хорошо, я протестировал ваш вариант использования, но он не вызывает блок useEffect.

Вот код, который я протестировал.

import React, { useEffect, useState } from "react";

const Comp = () => {
  const [count, setCount] = useState(0);
  const filter = "a";

  useEffect(() => {
    console.log("executing effect");
    //loadFriends();
  }, [filter]);

  return (
    <div>
      Div
      <button onClick={() => setCount(count + 1)}> Click me</button>
      Count: {count}
    </div>
  );
};

export default Comp;

Ссылка на codesandbox Даже при изменении счетчика компонент повторно визуализируется, но не вызывает блок useEffect.

Скорее всего, в loadFriends() происходит что-то, что изменяет значение фильтра.

Подробнее об использовании влияют здесь

0 голосов
/ 03 февраля 2020

Если вы хотите, чтобы он запускался только один раз, используйте пустой массив для значения зависимости вместо `[filter] '.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...