【问题标题】:Fetched value from axios as initial value of another state - React Hooks从 axios 获取值作为另一个状态的初始值 - React Hooks
【发布时间】:2019-09-27 10:55:08
【问题描述】:

知道如何使从 Axios 获取的值成为另一个状态的初始值吗?

我会尝试在它渲染状态将更新后将其置于使用效果

代码如下:

const [code, setCode] = useState(0);`enter code here`
  useEffect(() => {
    const result = data[0] ? data[0].code: 0; // <- fetched from axios
    setCode(result);
});

【问题讨论】:

  • 但是AFAIK,结果需要为初始状态的api调用应该在useEffect处调用,也只需在useEffect处添加[]来模仿componentDidMount
  • 另一个州是什么意思? code 的初始状态为 0

标签: reactjs


【解决方案1】:

您可以进行 api 调用并将这些值分配给您的状态,方法是使 useEffect 类似于 componentDidMount:

 useEffect(() => {
    const result = data[0] ? data[0].code: 0; // <- fetched from axios
    setCode(result);
},[]);

这只会在您第一次渲染后调用。我了解您希望 api 返回值成为您的初始状态,但这是最好的方法。

【讨论】:

    【解决方案2】:

    知道了,我只是将 data[0] 放入 deps 中。

    代码: useEffect(() => { const result = data[0] ? data[0].code: 0; setcode(result); }, [data[0]]);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-02
      • 2019-07-20
      • 1970-01-01
      • 1970-01-01
      • 2019-11-29
      • 1970-01-01
      • 2020-06-26
      相关资源
      最近更新 更多