Передача действий Redux в зависимости useEffect

У меня возникла проблема с передачей действий Redux в список зависимостей useEffect.

Например,

import { someReduxAction } from '../actions/greatestPathEverMade'

const mapDispatchToProps = () => ({
  someReduxAction
})

const DummyComponent = ({ someReduxAction }) => {
  useEffect(() => {
    someReduxAction()
  }, [someReduxAction])

  return ( .... )
}

Я на 75% уверен, что действие Redux не меняется, поэтому я могу опустить его из массива зависимостей useEffect, но мой вопрос в основном: возможно ли изменение действий Redux? Обычно они постоянны в том смысле, что базовое действие редукции отправляет тип и объект полезной нагрузки.


person kdizzle    schedule 20.11.2019    source источник
comment
someReduxAction — это функция, и я предполагаю, что она может создать новый экземпляр этой функции при рендеринге.   -  person Alexandr Zavalii    schedule 21.11.2019


Ответы (1)


Правило ESLint exhaustive-deps не может узнать, изменится ли эта функция на другую ссылку или нет, поэтому оно всегда будет сообщать вам, что функцию необходимо добавить в список зависимостей. Единственными исключениями являются встроенные функции React, такие как useState сеттер или useReducer диспетчеризация, которые React гарантирует, что они являются стабильными ссылками и таким образом жестко запрограммированы в правиле ESLint.

person markerikson    schedule 20.11.2019