.map(),Undefined不是React Native中的函数

时间:2017-05-25 12:45:00

标签: reactjs react-native expo

所以我调用了一个API并将其用于setState。

我的状态:

  state = {
   candlesticks: []
};

我的API调用和保证功能:

componentDidMount() {
    axios
      .get(
    "apiurl"
      )
      .then(data => {
        let mappedData = data.map((record) => {record.date *= 1000}); //getting the error here with the map()function
        this.setState({
          candlesticks: mappedData
        });
      });
  }

我在代码上尝试了不同的变体,但它仍然会出现此错误。 我正在使用Expo框架。

  

undefined不是一个函数    (评估'data.map(function(record){record.date * = 1000})')

1 个答案:

答案 0 :(得分:2)

Axios返回response个对象。在回复中,您拥有包含数据的数据属性 所以你需要做的是:

componentDidMount() {
    axios.get("apiurl")
    .then(response => {
        let mappedData = response.data.map((record) => {record.date *= 1000}); //getting the error here with the map()function
        this.setState({
            candlesticks: mappedData
        });
    });
}

修改

似乎不存在axios的问题,但只是为了排除它,尝试使用内置的fetch模块并查看数据是否仍然为空。

componentDidMount() {
    fetch("apiurl")
    .then(response => {
        return response.json();
     })
    .then(data => {
        let mappedData = data.map((record) => {record.date *= 1000});
        this.setState({
            candlesticks: mappedData
        });
    });
}

如果它为null,则问题出在您的服务器上。