在React.js(axios)中设置我的响应数据

时间:2018-12-09 20:46:03

标签: reactjs rest axios

我不知道,为什么我无法设置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 => {});
  }

1 个答案:

答案 0 :(得分:1)

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

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

此外,由于除了设置初始状态外,您无需在构造函数中执行任何操作,因此可以将其删除并改为执行

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

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