如何多次使用 fetch get 响应?

How do I use a fetch get response more than once?

我想在状态中设置这两个值以供以后用作变量。

  const [dollarGoal, setDollarGoal] = React.useState(0); 
  const [dollarValue, setDollarValue] = React.useState(0);
  //fetching donation value
  fetch('api', {
      method: 'GET',
    })
    .then(response => response.json())
    .then(r => setDollarValue(r.dollarValue))
    .then(r => setDollarGoal(r.dollarGoal));

但是报错:

Property 'dollarGoal' does not exist on type 'void'.

我该如何解决这个问题?

试试这个:

  fetch('api', {
      method: 'GET',
    })
    .then(response => response.json())
    .then((r) => {
      setDollarValue(r.dollarValue)
      setDollarGoal(r.dollarGoal)
    });

最后两个 .then 语句需要合并。通过两次调用 .then,您将 setDollarValue()(无效函数)的结果发送到下一个 .then,这不是您想要的。

首先,我认为您应该将 api 调用放在 useEffect 挂钩中,因为如果不这样做,在您使用 useState 挂钩设置响应值后会立即再次触发提取,它可能当它工作时会导致无限调用。 然后,我认为您的回复可能不包含名为 'dollarValue' 的 属性。 你试过 console.log 你的回应了吗?