Как установить несколько состояний при вызове запроса API?

avatar
silviaa11
8 августа 2021 в 18:44
39
0
1

Я преобразовал свой компонент класса в функциональный. Я хочу обновить состояния своих значений, когда я делаю почтовый запрос к API, но мой stockId всегда равен 0, и я получаю Error: Request failed with status code 500.

function NowyZakup () {

  const [date, setDate] = useState('');
  const [count, setCount] = useState(0);
  const [productId, setProductId] = useState(0);
  const [stockId, setStockId] = useState(0);

...

  const saveStock = () => {
    var data = {
      stockId: stockId,
      productId: productId,
      date: date,
      count: count,
    };
    axios.post('http://localhost:8000/api/stock/', data, {
      headers: {
        "Content-type": "application/json"
      }
    })
      .then(response => {
        setStockId(response.data.stockId);
        setProductId(response.data.productId);
        setDate(response.data.date);
        setCount(response.data.count);
        console.log(response.data)   
      })
      .catch(e => {
        console.log(e);
      });
      console.log(data)
  }

Источник
Soufiane Boutahlil
8 августа 2021 в 18:48
3

Ошибка 500 означает, что ошибка существует на стороне сервера, а не на стороне переднего плана.

Felix Kling
8 августа 2021 в 18:48
0

Как/когда/где вызывается saveStock? Если запрос не выполнен успешно, состояние никогда не обновится. Таким образом, похоже, проблема связана с начальными значениями, которые вы используете в запросе. Как вы ожидаете, что конечная точка API будет делать с stockId и productId 0?

Ответы (0)