Использование создателей избыточных действий в хуке useEffect - PullRequest
2 голосов
/ 16 мая 2019

Я хочу использовать useEffect для запуска 2 функций (которые являются создателями избыточных действий) - одна функция при монтировании компонента, а другая при размонтировании, например, так:

// ...

function MyComp(props) {
  function handleSelectItem(itemId) {
    const data = props.data.filter(/* some filter logic depending on itemId */);
    props.selectItem({ itemId, data });
  }

  useEffect(() => {
    handleSelectItem(1);
    return props.deselectItem;
  }, []);
}

export default connect(null, {selectItem, deselectItem})(MyComp)

Это работает,но правило react-hooks/exhaustive-deps eslint говорит мне, что у моего useEffect есть 2 зависимости, которые я должен включить в массив зависимостей (второй аргумент useEffect) или полностью удалить массив.Второй вариант не подходит, так как мне не нужно, чтобы эти функции вызывались при каждом рендере.Следовательно, мне нужно включить их обоих.Есть статья о включении функций в массив зависимостей.Описанные здесь вещи в значительной степени мне понятны, но я все еще путаюсь с создателями избыточных действий в массиве зависимостей и с тем, как реагирует поверхностно сравниваемые функции.Для меня это немного сложно понять.Как правильно разрешить этот конкретный случай, как правильно использовать создателей избыточных действий при использовании эффекта в целом?

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