Я использую React для передачи функции из родительского компонента в дочерний компонент и пытаюсь запустить ее в хуке useEffect()
.
Parent
function Parent(props) {
function alertMe() {
alert('me');
}
render (
<div>
<Child alertMe={alertMe} />
</div>
);
}
Child
function Child(props) {
const { alertMe } = props;
useEffect(() => {
alertMe();
}, [alertMe]);
render (
<div>
// stuff
</div>
);
}
Если я удаляю alertMe
как зависимость в useEffect()
дочернего компонента, он срабатывает только один раз, но я получаю предупреждение:
В React Hook useEffect отсутствуют зависимости: 'alertMe'. Либо включите его, либо удалите массив зависимых реагирующих хуков / исчерпывающим образом
Функция alertMe
определяется один раз в родительском компоненте при загрузке, поэтому я не понимаю, почему он будет работать бесконечнов дочернем компоненте. Это не меняется как состояние.
Как добавить alertMe
в качестве useEffect()
зависимости, но все же только запустить его один раз?