Похоже, вы неправильно поняли использование useEffect
. Это как componentDidUpdate
hook - он запускается в зависимости от изменения значения, а не напрямую какой-либо функцией. Когда вызывается метод render
, также вызывается useEffect
. Трудно сказать, какова ваша цель, но из вашего фрагмента наиболее разумно просто позвонить fetch
без каких-либо хуков. Но чтобы ответить на ваш вопрос, один из способов вызвать useEffect
- это обновить ваше состояние, и вы можете создать useEffect
ловушку, которая будет срабатывать только при изменении значения определенного свойства:
const [buttonClicked, setButtonClicked] = useState(false);
useEffect(() => {
// Fetch from API
}, [buttonClicked]);
<button onClick={() => setButtonClicked(true)}>Make API Call</button>
Теперь, когда вы нажимаете, useEffect
должен быть запущен, но поскольку вы добавили , [buttonClicked]
, он не будет вызван, если изменится любое другое значение свойства.