React Native Js-TypeError:l.map不起作用

时间:2019-06-11 16:01:34

标签: javascript ios reactjs react-native pie-chart

我是Js和React的新手,在我的第二学期中,我必须应用Macro营养素。

问题是我想使用一个带有状态值的饼图。

用于饼图的已发布的react-native-chart-kit

u在此链接上可以看到:https://www.npmjs.com/package/react-native-chart-kit

我尝试了

Piechart

<PieChart
                                        width={screenWidth}
                                        data={{
                                            datasets: [{
                                                data: [
                                                    { name: 'Glucide', nb:this.state.glucide, color: '#F00', legendFontColor: '#F00', legendFontSize: 15 },
                                                    { name: 'Proteine', nb: this.state.protaine, color: '#4250f4', legendFontColor: '#4250f4', legendFontSize: 15 },
                                                    { name: 'Lipide', nb: this.state.lipide, color: '#04e578', legendFontColor: '#04e578', legendFontSize: 15 },
                                                ]
                                            }]
                                        }}
                                        height={220}
                                        accessor="nb"
                                        chartConfig={chartConfig}
                                        backgroundColor="transparent"
                                        absolute/>

,我得到TypeError:l.map不是一个函数。 (在“ l.map(c)”中,“ l.map”未定义

1 个答案:

答案 0 :(得分:1)

l.map不起作用,此错误通常是由于变量调用.map()不是数组引起的。

在这种情况下,您应该将数据数组直接传递给数据

const data = [
        { name: 'Glucide', nb:this.state.glucide, color: '#F00', legendFontColor: '#F00', legendFontSize: 15 },
        { name: 'Proteine', nb: this.state.protaine, color: '#4250f4', legendFontColor: '#4250f4', legendFontSize: 15 },
        { name: 'Lipide', nb: this.state.lipide, color: '#04e578', legendFontColor: '#04e578', legendFontSize: 15 } 
      ]

<PieChart
      width={screenWidth}
      data={data}
      height={220}
      accessor="nb"
      chartConfig={chartConfig}
      backgroundColor="transparent"
      absolute 
/>