Как я могу преобразовать componentDidUpdate в ловушку реакции useEffect? - PullRequest
1 голос
/ 10 июля 2019

Я преобразовал свой основанный на классе компонент в функциональный компонент и подумал, что преобразование метода componentDidUpdate было правильным, но мой мусор жалуется, поэтому я мог бы уточнить, что я получаю неправильно.

Это моя componentDidUpdate функция для компонента на основе классов:

componentDidUpdate(prevProps) {
  if (
    prevProps.hasUnlockBeenClicked !== this.props.hasUnlockBeenClicked &&
    this.props.hasUnlockBeenClicked &&
    !this.props.startAt
  ) {
    this.saveInitialSession();
  }
}

saveInitialSession = () => {
  const { setSessionProperties, agentId, customerId, customerName } = this.props;
  setSessionProperties({
    agentId,
    customerId,
    customerName,
    startAt: moment().format(),
  });
}

Это то, что я пытаюсь изменить, используя useEffect() на функциональном компоненте:

const saveInitialSession = () => {
  setSessionProperties({
    agentId,
    customerId,
    customerName,
    startAt: moment().format(),
  });
};

useEffect(() => {
  if (hasUnlockBeenClicked && !startAt) {
    saveInitialSession();
  }
}, [hasUnlockBeenClicked]);

Эслинт говорит мне, что массив зависимостей должен включать startAt и saveInitialSession, что для меня не имеет никакого смысла.Я хочу, чтобы он работал, только если hasUnlockBeenClicked был изменен.

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