【发布时间】:2021-10-25 13:25:39
【问题描述】:
我有一个名为 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)
【问题讨论】:
-
如果您不想更改单元测试,则需要检查此函数的输入值。这个函数怎么调用?
-
@wowandy 刚刚更新了问题
-
这很明显)但是您可能传递了一个
undefined值。所以应该在调用这个函数的组件的代码中查找错误。您还可以尝试更改函数签名,如第二个选项 -const memberDropdownOptions = (members: Person[]): Option[]。在这种情况下,错误会更清楚
标签: javascript reactjs typescript react-native