Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

104
Vistas
Mapeo a través de múltiples valores posibles en un objeto - Componente React

Actualmente tengo un componente que toma un código de moneda y devuelve un SVG del país correspondiente. Quiero expandir el componente para instancias en las que queremos buscar por nombre de país y no por código de moneda. Los accesorios actuales que se pasan al componente son:

currencyCode, que es algo así como "AED" y countryLabel, que es algo así como "Emiratos Árabes Unidos"

 import Afghanistan from "./CountryFlags/Afghanistan.js"; // condensed imports const currencyCodeMap = { AED: UnitedArabEmirates, AFN: Afghanistan, ALL: Albania, AMD: Armenia, AOA: Angola, ARS: Argentina, AUD: Australia, AZN: Azerbaijan, }; type Props = { currencyCode?: string, countryLabel?: string, className?: string, }; const CountryFlag = ({ currencyCode, countryLabel, className }: Props) => { const FlagComponent = currencyCodeMap[currencyCode]; if (!FlagComponent) { return <StyledIcon isOberonIcon={true} name={"countryFallback"} />; } return ( <StyledImageWrapper className={className}> <FlagComponent /> </StyledImageWrapper> ); };

Traté de actualizar mi currencyCodeMap a algo como:

AED | "United Arab Emirates" para que la etiqueta o el código devolvieran una bandera, pero no alegría. ¿Alguna sugerencia?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

AED | "United Arab Emirates" no es una sintaxis JavaScript válida.

¿Por qué no tener un objeto como:

 type CountryEntry = { currencyCode: string, countryLabel: string, flagComponent: JSX.Element }

Luego tenga una matriz de estos y use .find() para obtener el componente.

Se vería algo como esto:

 import Afghanistan from "./CountryFlags/Afghanistan.js"; type Props = { currencyCode?: string, countryLabel?: string, className?: string, }; type CountryEntry = { currencyCode: string, countryLabel: string, flagComponent: JSX.Element } const flags: CountryEntry[] = [ { currencyCode: "AFN", countryLabel: "Afghanistan", flagComponent: Afghanistan }, /* ... */ ]; const CountryFlag = ({ currencyCode, countryLabel, className }: Props) => { const countryEntry = flags.find( (f) => f.countryLabel === countryLabel || f.currencyCode === currencyCode ); if (!countryEntry) { return <StyledIcon isOberonIcon={true} name={"countryFallback"} />; } else { const FlagComponent = countryEntry.flagComponent; return ( <StyledImageWrapper className={className}> <FlagComponent /> </StyledImageWrapper> ); };
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda