javascript - 从 axios 响应中 react 设置状态

标签 javascript reactjs axios

我正在尝试使用 axios POST 调用返回的信息更新状态。我收到一条错误消息 TypeError: Cannot read property 'setState' of undefined。在我看来,this 无法从 API 响应中使用。

submitData= () => {
        axios.post("url", this.props.data)
        .then(function (result) {
            console.log(result,'success');
            this.setState({
                ...this.state,
                id: result.data.id
            })
          })
          .catch(function (err) {
            console.log(err, 'fail');
          });

    }

我可以控制台日志result.data.id,它是正确的ID。我在所有客户端都这样做,我不想构建服务器或使用 reducer 。

最佳答案

在回调中使用箭头函数,如下所示:

submitData= () => {
        axios.post("url", this.props.data)
        .then((result) => {
            console.log(result,'success');
            this.setState({
                ...this.state,
                id: result.data.id
            })
          })
          .catch(function (err) {
            console.log(err, 'fail');
          });

    }

关于javascript - 从 axios 响应中 react 设置状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55445484/

相关文章:

javascript - 组件有 Render 方法,但没有扩展 React.Component

javascript - 何时在 JavaScript 中使用 this 而不是对象文字?

javascript - AngularJS:不是函数类型错误

javascript - d3 堆积条形图值未显示在图表上

javascript - 将多个输入值传递给函数以更新图像

node.js - 如何始终禁用 Chrome 网络缓存

javascript - React,单击时获取列表索引

javascript - Nuxt.js:未定义 ReferenceError baseURL

javascript - 尝试使用 axios 从 Reactjs 组件发送数据到 Express 应用程序

javascript - Axios : which HTTP response status codes result in then() and which in catch()?