Я преобразовал свой основанный на классе компонент в функциональный компонент и подумал, что преобразование метода 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
был изменен.