Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

432
Visualizações
¿Cómo usar if dentro de un mapa de retorno?

Necesito generar un código reactJS diferente basado en el modelo de datos, pero obtengo

En el archivo "~/Scripts/Grid.jsx": Error de análisis: Línea 13: Token inesperado si (en la línea 13, columna 15) Línea: 52 Columna: 3

con este codigo

 var GridRow = React.createClass({ render: function() { var row; row = this.props.cells.map(function(cell, i) { return ( if(cell.URL != null && cell.URL.length > 0){ <td className={cell.Meta.HTMLClass} key={i}>{cell.Text}</td> } else { <td className={cell.Meta.HTMLClass} key={i}>{cell.Text}</td> } ); }.bind(this)); return ( <tr> {row} </tr> ); } });

¿La parte de renderizado parece estar realmente limitada en cuanto a cómo se puede usar?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Pones la declaración de return dentro de la cláusula if así:

 row = this.props.cells.map(function(cell, i) { if(cell.URL != null && cell.URL.length > 0){ return <td className={cell.Meta.HTMLClass} key={i}>{cell.Text}</td>; } else { return <td className={cell.Meta.HTMLClass} key={i}>{cell.Text}</td>; } }.bind(this));
over 4 years ago · Santiago Trujillo Relatório

0

También podría usar una declaración ternaria (si/si no en línea). Podría verse así:

 row = this.props.cells.map(function(cell, i) { return (cell.URL != null && cell.URL.length > 0) ? (<td className={cell.Meta.HTMLClass} key={i}>{cell.Text}</td>) : (<td className={cell.Meta.HTMLClass} key={i}>{cell.Text}</td>) }.bind(this));

o es6

 row = this.props.cells.map((cell, i) => (cell.URL != null && cell.URL.length > 0) ? (<td className={cell.Meta.HTMLClass} key={i}>{cell.Text}</td>) : (<td className={cell.Meta.HTMLClass} key={i}>{cell.Text}</td>) );

pero, para facilitar la lectura, sugeriría la respuesta de nilgun.

Aunque eliminaría la declaración else, ya que es redundante. También puede eliminar los corchetes, esto es una cuestión de preferencia.

 row = this.props.cells.map(function(cell, i) { if(cell.URL != null && cell.URL.length > 0) return <td className={cell.Meta.HTMLClass} key={i}>{cell.Text}</td>; return <td className={cell.Meta.HTMLClass} key={i}>{cell.Text}</td>; }.bind(this));
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda