Я пытаюсь использовать useEffect
для извлечения данных, когда компонент смонтирован следующим образом:
useEffect(() => {
axios.get(myUrl)
.then(response => {
setName(response.name);
setAge(response.age);
}).catch(error => {
console.log(error);
});
}, [myUrl, setName, setAge]);
setName
и setAge
происходят из контекста следующим образом:
import MyContext from './context';
const MyComponent = props => {
const {
setName,
setAge
} = useContext(MyContext);
Эта проблема заключается в том, что все функции, массивы и объекты регистрируются как «измененные» зависимости в вызове useEffect
, поэтому он заканчивается бесконечным l oop, где происходит выборка этих данных снова и снова и снова. снова. Могу ли я запомнить функцию из контекста, чтобы он знал, что вызовет этот эффект только один раз?
Примечание: Потребитель моего контекста находится на несколько уровней выше этого компонента, поэтому я предполагаю, что там ничего нет Я могу сделать там.