React-хуки: как получить доступ к реквизиту в рамках «монтирования» useEffect, а не бросать предупреждение о задержке - PullRequest
0 голосов
/ 05 марта 2019

Если я не ошибаюсь, это действительный код:

useEffect(() => {
   if (prop1) {
      doSomething();
   }
}, []);

(prop1 - опора).Но при линтировании я получаю следующую ошибку:

React Hook useEffect has a missing dependency: 'prop1'. Either include it or remove the dependency array.

(реакции-зацепки / исчерпывающее-deps)

Я не хочу передавать prop1 как зависимость, потому что я потеряю "только запустить на горе "поведение.Но мне нужно получить доступ к опоре, чтобы сделать что-то ().

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

попробуйте этот код

const usemount = ( functionToDoSomeThing, data ) => {
    useEffect( () => {
        functionToDoSomeThing( data );
    },[] );
};

usemount( console.log, props );

я определяю функцию для выполнения чего-то и передаю ее в ловушку

в примере я использую функцию console.log

0 голосов
/ 05 марта 2019

Вы, вероятно, могли бы поднять это здесь .. [ESLint] Обратная связь для правила lint 'исчерпывающего deps'

Хотя я чувствую, что это тот случай, когда вы должны добавитьЕсли вы уверены, что не хотите, чтобы эффект запускался при обновлении prop1.

, в этом случае оставьте комментарий "игнорировать". Здесь был поднят законный аргумент для смягчения предупреждения .. https://github.com/facebook/react/issues/14920#issuecomment-467896512

Также проверьте, какую версию плагина вы используете .. https://github.com/facebook/react/issues/14920#issuecomment-468801699

...