【问题标题】:setState my response data in React.js (axios)在 React.js (axios) 中设置我的响应数据
【发布时间】:2018-12-09 20:46:03
【问题描述】:

我不知道,为什么我不能 setState 我的 REST API 响应数据。 Console.log 正常工作。问题出在哪里?我在我的代码中找不到问题。

class RecentTransactions extends Component {
  constructor() {
    super();

    this.setState = {
      recentTransactionsSender: [],
      recentTransactionsRecipient: [],
    };
  }

  componentDidMount() {
    axios
      .all([
        axios.get('http://localhost:3000/api/transactions/recipient/1'),
        axios.get('http://localhost:3000/api/transactions/sender/1'),
      ])
      .then(
        axios.spread(
          (recentTransactionsRecipient, recentTransactionsSender) => {
            this.setState({
              recentTransactionsRecipient: recentTransactionsRecipient.data,
              recentTransactionsSender: recentTransactionsSender.data,
            });
          },
        ),
      )
      .catch(err => {});
  }

【问题讨论】:

  • 您能否详细说明您的代码“不起作用”的原因?你期待什么,实际发生了什么?如果您遇到异常/错误,请发布它发生的行和异常/错误详细信息。请edit这些详细信息,否则我们可能无法提供帮助。

标签: reactjs rest axios


【解决方案1】:

首先,您错误地设置了初始状态。您应该将初始状态分配给 state 对象而不是 setState

this.state = {
  recentTransactionsSender: [],
  recentTransactionsRecipient: [],
};

此外,由于除了设置初始状态之外,您在构造函数中没有做任何事情,您可以将其删除并改为执行

class RecentTransactions extends Component {
    state = {
        recentTransactionsSender: [],
        recentTransactionsRecipient: [],
    };
}

除此之外,如果没有更多关于什么不起作用的详细信息,就不可能为您提供任何进一步的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    • 2017-09-28
    • 2018-03-17
    • 2021-02-27
    相关资源
    最近更新 更多