"react";
import PropTypes from "prop-types";
import AroundButton from "Components/Buttons/AroundButton";
import { timer } from "Common/Utils/date";
function WebinarStatus(props) {
const { t, onClick, state, date } = props;
const [diff, setDiff] = useState({});
const timerHandler = () => {
console.log("timerHandler")
setDiff(timer(date));
};
useEffect(() => {
const timerId = setInterval(timerHandler, 2000);
return clearInterval(timerId);
}, [diff]);
if (state === "Registered") {
console.log("diff:", diff)
}
return null;
}
WebinarStatus.defaultProps = {
onClick: () => null,
t: text => text,
};
WebinarStatus.propTypes = {
/ Состояние вединара */
state: PropTypes.oneOf([
/ Регистрация открыта */
"Open",
/ Регистрация закрыта */
"Closed",
/ Зарегестрирован */
"Registered",
/ Вебинар завершен */
"Finished",
]),
/ Дата вебинара */
date: PropTypes.string,
/ Ссылка на вебинар */
link: PropTypes.string,
/ Обработчик клика по кнопке регистрации на вебинар */
onClick: PropTypes.func,
/** Функция транслятор строк */
t: PropTypes.func,
};
export default WebinarStatus;
есть такой код, я не понимаю почему setInterval не вызывает timerHandler в эффекте?
код на gist
Обсуждают сегодня