Как передать параметр внутри optionalChain

#javascript #reactjs

#javascript #reactjs

Вопрос:

У меня есть функция, в которой я получаю идентификатор желаемой команды в зависимости от того, является ли она домашней или выездной командой. Вместо того, чтобы создавать отдельные функции для обоих действий, я хотел сделать это за один раз. Вот что у меня есть до сих пор :

  const getTeamLogo = (team) => {
    let teamStatus = team === "home" ? "homeTeam" : "awayTeam";
    let teamId = nextMatch?.teamStatus.id
    let ourTeam = teamInfo?.find(({ team }) => team.id === teamId);
    return ourTeam?.team.crestUrl;
  };

  

Чтобы извлечь идентификатор, мне нужно передать либо HomeTeam, либо AwayTeam. Поэтому я подумал о создании другой переменной, чтобы в зависимости от параметра я мог передать туда нужное слово, но в текущей ситуации я получаю Cannot read property 'id' of undefined ошибку. Есть идеи о том, как мне улучшить этот код и получить желаемый результат? Заранее спасибо.

Ответ №1:

Использовать teamStatus в качестве вычисляемого ключа.

 const getTeamLogo = (team) => {
  let teamStatus = team === "home" ? "homeTeam" : "awayTeam";
  let teamId = nextMatch?.[teamStatus]?.id
  let ourTeam = teamInfo?.find(({ team }) => team.id === teamId);
  return ourTeam?.team.crestUrl;
};