简体   繁体   中英

Map Function - Unhandled JS Exception: TypeError: undefined is not an object evaluating map

I have a file called displayKeyHelpers.ts and the members.map code is on line 118. The code works for most users and in QA as well but occasionally it seems members is undefined. I am looking at a crash report that says

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..

It seems like members in the function below is undefined. How can I add a check?

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
}

This is what I tried but it failed some unit tests so I am guessing that it is not right:

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
}

The function is used like this:

const memberOptions = memberDropdownOptions(members)

The members argument that you are passing to memberDropdownOptions(members) is not defined when the function is being called.

Is members relying on some asynchronous logic to be given a value? Trace back to where it's being assigned a value, and make sure memberDropdownOptions() only fires once it does have one.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM