Запятая ожидаемая ошибка в данных useEffect Реагирует

#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 О… мне не хватает распространения, я обновил ответ