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

182
Vistas
todos.unshift no es una función

Cuando intento agregar al comienzo de una matriz en React Native, aparece el siguiente error:

 TypeError: todos.unshift is not a function. (In 'todos.unshift(newTodo)', 'todos.unshift' is undefined)

Mi código es:

 export default function App() { const [todos, setTodos] = useState(['Hello']); const [todo, setTodo] = useState(''); function addItem(newTodo) { console.log(newTodo); setTodos(todos.unshift(newTodo)); } return ( <TouchableWithoutFeedback onPress={() => { Keyboard.dismiss(); }} > <View style={styles.container}> <TextInput placeholder='new todo' style={styles.input} value={todo} onChangeText={(text) => { setTodo(text); }} ></TextInput> <Button title='Add' onPress={()=>addItem(todo)}></Button> </View> </TouchableWithoutFeedback> ); }

Por qué está pasando esto . ¿useState no aplica el tipo de todos como una matriz?

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

0

El método 'unshift' no devuelve una matriz modificada. Puedes ver cómo funciona aquí .

y no se recomienda mutar el estado sin el método setState porque en ese caso React no puede detectar el cambio.

puede usar setTodos(arr => [newTodo, ...arr]) en su lugar.

about 4 years ago · Juan Pablo Isaza Denunciar

0

también puede probar esto ya que el método de matriz 'unshift' no devuelve una matriz modificada.

Primero clone el estado usando el operador de propagación y luego actualice el estado.

 function addItem(newTodo) { let arrayToUpdate = [...todos]; arrayToUpdate.unshift(newTodo); setTodos(arrayToUpdate); }
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