Ответы пользователя по тегу Linter
  • Eslint и React hooks?

    @alexkhismatulin
    Смысл этого правила в том, чтобы в useEffect явно было видно, как зависимости влияют на выполняемые в эффекте действия. В твоём случае то, как data влияет на вызов getList в эффекте, неочевидно.

    Как можно решить:

    1. Добавить в getList параметр data, это сделает зависимость явной:
    useEffect(() => {
      getList(data)
    }, [data])


    2. Если ты не хочешь следовать правилу, отключи его в .eslintrc:
    {
      "plugins": ["react-hooks"],
      // ...
      "rules": {
        // ...
        "react-hooks/exhaustive-deps":  "off"
      }
    }


    3. Если хочешь отключить его единожды:
    useEffect(() => {
      getList()
    }, [data]) // eslint-disable-line

    или
    /* eslint-disable react-hooks/exhaustive-deps */
    useEffect(() => {
      getList()
    }, [data])
    /* eslint-enable react-hooks/exhaustive-deps */
    Ответ написан