开发者问题收集

Map 函数 - 未处理的 JS 异常:TypeError:undefined 不是评估 map 的对象

2021-10-25
128

我有一个名为 displayKeyHelpers.ts 的文件, members.map 代码位于第 118 行。该代码适用于大多数用户和 QA,但偶尔似乎成员未定义。我正在查看一份崩溃报告,上面写着

displayKeyHelpers.ts, line 118
SIGABRT: Unhandled JS Exception: TypeError: undefined is not an object (evaluating 'n.map') This error is located at: in V in Unknown in Unknown in Unknown..

似乎下面函数中的成员未定义。我该如何添加检查?

export const memberDropdownOptions = (members: any): Option[] => {
  const options: Option[] = []
  members.map((member: Person) => {
    options.push({
      label: `${member.firstName} ${member.lastName}`,
      value: member.dependentNumber,
    })
  })
  return options
}

这是我尝试过的,但它在一些单元测试中失败了,所以我猜它不对:

export const memberDropdownOptions = (members: Person[]): Option[] => {
  const options: Option[] = []
  members?.map((member: Person) => {
    options.push({
      label: `${member?.firstName} ${member?.lastName}`,
      value: member?.dependentNumber,
    })
  })
  return options
}

该函数的使用方式如下:

const memberOptions = memberDropdownOptions(members)
1个回答

调用函数时,传递给 memberDropdownOptions(members)members 参数未定义。

members 是否依赖某些异步逻辑来赋值?追溯到为其赋值的位置,并确保 memberDropdownOptions() 仅在有值时触发。

TehTriangle
2021-10-25