Estoy tratando de devolver un elemento con un interruptor en línea. Pero obtengo solo un <span> </span> vacío. ¿Qué estoy haciendo mal?
getRowTdForHeader: (header: string, entry: response) => { return (<span> {() => { switch (header) { case "Name": return entry.name; case "Type": return entry.type; default: return entry.name; } } } </span>); } El resultado es un span vacío y si coloco un punto de interrupción en el retorno, nunca entra en la declaración de cambio. Me gustaría mantenerlo como un forro si es posible. El interruptor funciona bien si no lo alineo por cierto.
Debe envolver la función de flecha entre paréntesis y ejecutarla inmediatamente con el siguiente par de paréntesis.
{(() => { switch (header) { case "Name": return entry.name; case "Type": return entry.type; default: return entry.name; } })()}definiste una función pero no la llamaste
() => { switch (header) { case "Name": return entry.name; case "Type": return entry.type; default: return entry.name; } }Le sugiero que ponga el resultado en una variable y luego lo use:
getRowTdForHeader: (header: string, entry: response) => { let str: string; switch (header) { case "Name": str = entry.name; case "Type": str = entry.type; default: str = entry.name; } return <span> { str } </span>; }