Puis-je mapDispatchToProps sans mapStateToProps dans Redux?

Je suis briser Redux " todo exemple pour essayer de comprendre. J'ai lu que mapDispatchToProps permet à la carte de répartition des actions comme les accessoires, donc j'ai pensé à la réécriture addTodo.js à utiliser mapDispatchToProps au lieu d'appeler l'expédition(addTodo()). Je l'ai appelé addingTodo(). Quelque chose comme ceci:

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

Cependant, lorsque je lance l'application, j'obtiens cette erreur: Error: Invalid value of type object for mapStateToProps argument when connecting component AddTodo.. Je n'ai jamais utilisé mapStateToProps pour commencer AddTodo composant, donc je n'étais pas sûr de ce qui n'allait pas. Mon instinct dit que connect() attend mapStateToProps précéder mapDispatchToProps.

Le travail original ressemble à ceci:

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

Complète repo peut être trouvé ici.

Donc ma question est, est-il possible de faire mapDispatchToProps sans mapStateToProps? Est ce que je suis en train de faire une pratique acceptable - si non, pourquoi pas?

InformationsquelleAutor Iggy | 2017-12-05