【问题标题】:How can I set multiple states after an api call on react?api调用react后如何设置多个状态?
【发布时间】:2022-11-06 06:46:47
【问题描述】:
 const config = {
        headers: { Authorization: 'Bearer ' + token }
      };

       const query = new URLSearchParams({
            start: newStartDate,
            end: newStartDate,
          });

      const checkRecord = async () => {
        const apiVersion = 'v2'
        setIsLoading(true)
        axios.get(`https://api-prod.surfsight.net/${apiVersion}/devices/${imei}/recording-ranges?${query}`, config)
        .then(res => setIntervals(res.data.data[recCam]?.intervals) || setNovideError("") || setIsReqButton(true) || console.log(intervals[0]))
        .then(res => setIntervalTime(intervals[0].start))
        .catch(err => console.log(err) || setNovideError("Something went wrong please try again"))
        .finally(() => setIsLoading(false))

              

        if(intervals >= [0]) {
          setEpochTime(moment(intervalTime).utcOffset(4).unix())
          } else {
            setNovideError("No Record Found")
          } 
      }

我尝试了许多设置状态的方法,但设置 unix 时间仅在第二次请求后才起作用。请帮忙 :(

【问题讨论】:

  • 通过调用您需要的任何setXxx 方法?不清楚为什么要使用逻辑或;编写正常的方法并消除混淆的一个来源。目前还不清楚什么没有按您期望的方式工作。

标签: reactjs next.js setstate


【解决方案1】:

功能检查记录(){ 常量 apiVersion = 'v2' 设置加载(真) axios.get(https://api-prod.surfsight.net/${apiVersion}/devices/${imei}/recording-ranges?${query}, 配置) .then(res => { setIntervals(res.data.data[recCam]?.intervals); setNovideError(""); setIsReqButton(true); setIntervalTime(intervals[0].start); setEpochTime(moment(intervalTime).utcOffset(4).unix()); }) .catch(err => console.log(err)) .finally(() => setIsLoading(false))

/// I did it this way but still same result. I can't get the intervalTime and epochTime set when I call this function

【讨论】:

    猜你喜欢
    • 2021-02-02
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 2018-06-13
    • 2021-06-06
    • 1970-01-01
    • 2019-08-09
    • 2020-03-06
    相关资源
    最近更新 更多