Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript箭头函数上出现奇怪的未定义错误_Javascript_React Native - Fatal编程技术网

javascript箭头函数上出现奇怪的未定义错误

javascript箭头函数上出现奇怪的未定义错误,javascript,react-native,Javascript,React Native,我加入了一个react原生项目,我意识到这里有些不同,比如它的CSS,但我认为javascript也不同。因为我在以下代码中出错: const makeVal = arr => arr .filter( i => i.checked ) .map ( i => i.label ) .join(', '); 有时此函数会出现以下错误: 未捕获的TypeError:无法读取未定义的属性“filter” 我找不到,我们的领导告诉我这是你的错?但我认为这是

我加入了一个react原生项目,我意识到这里有些不同,比如它的CSS,但我认为javascript也不同。因为我在以下代码中出错:

const makeVal = arr =>
  arr
    .filter( i => i.checked )
    .map ( i => i.label )
    .join(', ');
有时此函数会出现以下错误:

未捕获的TypeError:无法读取未定义的属性“filter”

我找不到,我们的领导告诉我这是你的错?但我认为这是后端团队的错误,因为他们的数据在API中传递

如何编写这个不会出错的函数

未捕获的TypeError:无法读取未定义的属性“filter”

您应该确保实际定义了
arr
属性,并且该属性属于
array
类型。在某些情况下,传递给
makeVal
函数的
arr
似乎未定义,因此没有
filter
方法。您可以尝试以下方法:

const makeVal = arr => {
   if (typeof arr === 'undefined' || ! Array.isArray(arr)) {
       // "arr" is wrong, error handling
   } else {
       return  arr
           .filter( i => i.checked )
           .map ( i => i.label )
           .join(', ');
   }
}

此外,您可能希望检查
arr
元素是否实际包含“checked”和“label”字段,但这是另一种情况。或者,您可以检查
makeVal
callsite并确保传递给此函数的数据是正确的

代码中的
dot
在哪里?假设这实际上是
arr.filter(…).map(…)
等,则错误表示您正在向函数传递
undefined
。但是您没有告诉我们如何调用函数。@AnkitAgarwal,谢谢您的评论。我修复了它。@RobinZigmond,它在
Text
组件中调用be
react native
,在这个函数中,arr通过
formik
对象,即
字段。value
。“我的经理告诉我这与数据无关,是你的代码的错。@ElinaSalamon。这是关于它的名字。没有更多的信息,我们无法回答。谢谢你的回答。我也想给你投票,但因为我15岁以下的代表,我不能。如果我绝对达到这个代表,我会投你一票。谢谢