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

343
Vistas
¿Puedo mapDispatchToProps sin mapStateToProps en Redux?

Estoy separando el ejemplo de todo de Redux para tratar de entenderlo. Leí que mapDispatchToProps le permite mapear acciones de envío como accesorios, así que pensé en reescribir addTodo.js para usar mapDispatchToProps en lugar de llamar a dispatch(addTodo()). Lo llamé addingTodo() . Algo como esto:

 import React from 'react'; import {connect} from 'react-redux'; import addTodo from '../actions'; let AddTodo = ({addingTodo}) => { let input; return ( <div> <form onSubmit={e => { e.preventDefault() if (!input.value.trim()) { return } addingTodo(input.value) input.value = "" }}> <input ref={node => { input = node }} /> <button type="submit">Submit</button> </form> </div> ) } const mapDispatchToProps = { addingTodo: addTodo } AddTodo = connect( mapDispatchToProps )(AddTodo) export default AddTodo

Sin embargo, cuando ejecuto la aplicación, aparece este error: Error: Invalid value of type object for mapStateToProps argument when connecting component AddTodo. . Para empezar, nunca usé mapStateToProps en el componente AddTodo, por lo que no estaba seguro de qué estaba mal. Mi instinto dice que connect() espera que mapStateToProps preceda a mapDispatchToProps .

El original de trabajo se ve así:

 import React from 'react'; import {connect} from 'react-redux'; import addTodo from '../actions'; let AddTodo = ({dispatch}) => { let input; return ( <div> <form onSubmit={e => { e.preventDefault() if (!input.value.trim()) { return } dispatch(addTodo(input.value)) input.value = "" }}> <input ref={node => { input = node }} /> <button type="submit">Submit</button> </form> </div> ) } AddTodo = connect()(AddTodo) export default AddTodo

El repositorio completo se puede encontrar aquí .

Entonces mi pregunta es, ¿es posible hacer mapDispatchToProps sin mapStateToProps? ¿Es lo que estoy tratando de hacer una práctica aceptable? Si no, ¿por qué no?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Sí tu puedes. Simplemente pase null como primer argumento:

 AddTodo = connect( null, mapDispatchToProps )(AddTodo)

Sí, no es solo una práctica aceptable, es una forma recomendada de desencadenar acciones. El uso de mapDispatchToProps permite ocultar el hecho de usar redux dentro de sus componentes de reacción

over 4 years ago · Santiago Trujillo 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