开发者问题收集

在 React 中捕获异步 axios 调用的响应

2020-04-18
74
 async  saveForm(data) {
     return await axios({
       method: "post",
       url: FORM_PORTAL_CONTROLLER_URL + 'savemoratorium',
       body: JSON.stringify(data)
    }).then(res => 
        this.setState({ refNo: res.data.reference }))
  }

我无法设置从请求中获取的状态,它给出了以下错误。Post 请求执行完美。我想捕获响应并更改状态。函数位于组件内部。以下错误出现在页面控制台中,之后我得到了一个白页。

react_devtools_backend.js:6 TypeError:无法读取未定义的属性“长度” react-dom.production.min.js:152 未捕获(在承诺中)TypeError:无法读取未定义的属性“长度”

2个回答

渲染前添加验证

// Sample 1

      if(Array.isArray(refNo) && refNo.length){ 
        //your code
       }

//Sample 2

      {Array.isArray(refNo) && refNo.length? customRenderFunction(): null}
Lucas Matos
2020-04-18

我找到了这种情况的根本原因。这是因为我与 Material UI 节点模块发生了冲突。(makeEffect、useEffect)

Malinda Peiris
2020-04-20