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

340
Visualizações
¿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 Respostas
Responde à pergunta

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 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