#react-native #use-effect
Вопрос:
Я получил «,» (запятая) ожидаемая ошибка из данных: {…пример.данные, данные об ошибках} ошибка указывает на точку». » в данных об ошибках
useEffect(()=>{
axios.get('http://localhost:1234/hello').then((res)=>{
{console.log(res.data)}
setSample({
...sample,
data: {...sample.data, res.data}
})
{console.log(sample)}
})
}, [])
Ответ №1:
Вам тоже придется распространять res.data
это.. Рассмотрим приведенный ниже пример
const [sample, setSample] = useState({data: {value: 'initial'}});
useEffect(() => {
const res = {
data: {
another_value: "from api"
}
};
setSample({
...sample,
data: { ...sample.data, ...res.data }
});
}, []);
Начальное состояние sample
имеет свойство value
со значением = начальное. В useEffect
, мы добавляем еще одно значение к объекту образца. Это приведет к выходу,
{value: "initial", another_value: "from api"}
также console.log(sample)
не будет отображаться обновленное значение, если вы зарегистрируете его чуть ниже setSample
. Возможно, вы захотите добавить useEffect
sample
зависимость с as, и она будет прослушивать изменения в примере.
useEffect(() => {
console.log(sample);
}, [sample]);
Ответ №2:
Вы можете использовать квадратный тормоз
useEffect(()=>{
axios.get('http://localhost:1234/hello').then((res)=>{
console.log(res.data);
setSample({
...sample,
data: {...sample["data"], ...res["data"]}
});
console.log(sample) // this not working because setSample is Promise function
})
}, [])
Комментарии:
1. Я все еще получаю «,» и «:» ожидаемая ошибка в res[«данные»]
2. @Vista О… мне не хватает распространения, я обновил ответ