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

93
Vistas
simple llamada repetida de matriz en mecanografiado de reaccionar no funciona en 1 caso de 3 casos similares

Hola, estoy codificando aplicaciones de tareas sencillas con react.js/typescript. estoy atascado llamando repetidamente a todos

Podría llamar a todo en 1) y 3) pero NO PUEDO llamar a 2) .

cual es la diferencia. ¿Quizás mi tipo de interfaz falla en todo.type.tsx ?

  1. <TodoListItem todo={todos[0]} />
  2. {todos.map(todo=> { <TodoListItem todo={todo} /> })}
  3. {todos.map(todo => (<li>{todo.text} - {todo.email2}</li> ))}

o mi llamada Props2 en todo.tsx es mala?

React.FC<Props2> = ({ todo })

esto es mostrado

 ==== ( localhost:9000 rendering shows this ) ====== text1"[shown in TodoListItem]"contato@gabrielrufino.com text1 - contato@gabrielrufino.com text2 - darthvader@starwars.com

src/páginas/index.tsx

 import { TodoListItem } from '../components/todo'; export default function IndexPage(){ const [todos, setTods] = useState<Todo[]>([ { text: 'todo1', email2: 'contato@gabrielrufino.com' }, { text: "todo2", email2: 'darthvader@starwars.com' } ]) return ( <Layout> <TodoListItem todo={todos[0]} /> // ★I can call (★1) <ul> {todos.map(todo=> { <TodoListItem todo={todo} /> // ★I CANT call (★2) })} </ul> <ul> {todos.map(todo => ( <li>{todo.text} - {todo.email2}</li> // ★I can call (★3) ))} </ul> </Layout> ) }

src/modelo/todo.type.tsx

 interface Todo { text: string; email2: string; } interface Props2 { todo: Todo; }

src/components/todo.tsx

 import React, { FC } from 'react'; export const TodoListItem: React.FC<Props2> = ({ todo }) => { return ( <li> {todo.text} <br> "shown in TodoListItem" </br> {todo.email2} </li> ); };
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

El problema era que no regresaba en absoluto.

Probar

 <ul> {todos.map((todo: Todo) => ( <TodoListItem todo={todo} /> ))} </ul>

o

 <ul> {todos.map(todo=> { return <TodoListItem todo={todo} /> })} </ul>

en vez de

 <ul> {todos.map(todo=> { <TodoListItem todo={todo} /> // ★I CANT call (★2) })} </ul>

Caja de arena de código => https://codesandbox.io/s/nervous-bartik-vl8hs

about 4 years ago · Juan Pablo Isaza Denunciar

0

Ha cometido un error de horquillado . Para cualquier función en JS/TS, () significa regresar (ni siquiera tiene que usar la palabra clave return ), mientras que {} significa simplemente ejecutar la función

En su archivo index.tsx :

 import { TodoListItem } from '../components/todo'; export default function IndexPage(){ const [todos, setTods] = useState<Todo[]>([ { text: 'todo1', email2: 'contato@gabrielrufino.com' }, { text: "todo2", email2: 'darthvader@starwars.com' } ]) return ( <Layout> <TodoListItem todo={todos[0]} /> // ★I can call (★1) //Here, inside the map function you have used "{}" instead of "()" so the map function is simply iterating and not returning anything. <ul> {todos.map(todo=> { <TodoListItem todo={todo} /> // ★I CANT call (★2) })} </ul> <ul> {todos.map(todo => ( <li>{todo.text} - {todo.email2}</li> // ★I can call (★3) ))} </ul> </Layout> ) }

Las soluciones para esto podrían ser

 <ul> {todos.map((todo: Todo) => ( <TodoListItem todo={todo} /> ))} </ul>

o

 <ul> {todos.map(todo=> { return <TodoListItem todo={todo} /> })} </ul>
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