数据数组未定义 React Native

Posted

技术标签:

【中文标题】数据数组未定义 React Native【英文标题】:Data Array Undefined React Native 【发布时间】:2022-01-20 17:50:42 【问题描述】:

我正在尝试以这种格式映射从 API 返回的数据:

data=[
     x: 0, y: 0 ,
     x: 1, y: 1 ,
     x: 2, y: 2 ,
     x: 3, y: 3 ,
     x: 4, y: 4 ,
  ]

我有一个 get 调用,然后我映射每个项目给我一个 x , y 值:

getCryptoChartData('histohour', selectedCrypto, 24, 1).then(
          cryptoChartData => 
            //const response = cryptoChartData.Data.map(item => item.close);
            const data = cryptoChartData.Data.map(item => 
              [
                
                  x: item.time,
                  y: item.close,
                ,
              ];
            );
            return this.setState(cryptoChartData: data);
          ,
        );

但是,我注意到数据数组设置为未定义:

<SlideAreaChart
 data=this.state.cryptoChartData
/>

Am I setting the data array correctly with the mapping?

【问题讨论】:

【参考方案1】:

是的,问题似乎出在映射上。您只是忘记返回生成的对象:

    const data = cryptoChartData.Data.map(item => 
      return 
          x: item.time,
          y: item.close,
      ;
    );

const data = cryptoChartData.Data.map(item => (
    x: item.time,
    y: item.close,
));

getCryptoChartData 方法的最终代码如下所示:

getCryptoChartData('histohour', selectedCrypto, 24, 1)
    .then(cryptoChartData => 
        const data = cryptoChartData.Data.map(item => (
            x: item.time,
            y: item.close,
        ));
        this.setState( cryptoChartData: data );
    );

【讨论】:

但我正在这样做 return this.setState(cryptoChartData: data); 你不需要那个return。您需要在映射中使用return 如何更新 cryptoChartData 状态?如果没有设置? 我的意思只是return。您仍然需要拨打this.setState(cryptoChartData: data); 谢谢,效果很好,为什么我做错了?

以上是关于数据数组未定义 React Native的主要内容,如果未能解决你的问题,请参考以下文章

React Native HealthKit getDailyStepCountSamples 返回未定义或空数组

React Native 中的 FlatList 实现 - renderItem 功能不清楚? - 未定义的属性

React Native route.params 未定义

React Native - 未定义不是对象(评估'Items.Length')

无法从 React-Native-Firebase(v6) Firestore 获取数据:未定义不是函数(靠近 '...this._firestore.native.collectionGet...'

React Native:“未定义不是对象”使用 ListView 和外部数据源渲染组件