React Native Js - TypeError: l.map is not function

Posted

技术标签:

【中文标题】React Native Js - TypeError: l.map is not function【英文标题】: 【发布时间】:2019-06-11 16:01:34 【问题描述】:

我是 Js 和 React 的新手,在我的第二学期,我必须申请宏量营养素。

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

对于饼图,使用了 react-native-chart-kit

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

我试过了

饼图

<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 is not a function。 (in'l.map(c)','l.map' 未定义

【问题讨论】:

欢迎来到 Stack Overflow! SO 的工作方式,您的整个问题(包括任何必要的代码)必须in 您的问题,而不仅仅是链接。两个原因:人们不应该去场外帮助你;和链接腐烂,使问题及其答案对未来的人们毫无用处。请在问题中输入minimal reproducible example in。更多:How do I ask a good question?Something in my web site or project doesn't work. Can I just paste a link to it? 【参考方案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 
/>

【讨论】:

好的,但是如果我尝试这个,在 const 数据中我们不能访问 state.glucide

以上是关于React Native Js - TypeError: l.map is not function的主要内容,如果未能解决你的问题,请参考以下文章

React JS和React-Native学习指南

React JS和React-Native学习指南

react-native 捆绑失败:错误:找不到模块 /metro-react-native-babel-transformer/src/index.js

React 、React.js、React Native三者关系

index.js:找不到模块'.../@react-native-community/cli/node_modules/metro-react-native-babel-transformation/

React Native - JEST:没有找到 haste.hasteImplModulePath 选项中的 react-native/jest/hasteImpl.js