2017-04-17 1 views
0

Ich bin die folgenden Fehler in der Konsole empfangen, wenn ich versuche, eine signin Form zu navigieren:redux-Form - nicht erfasste Fehler: `mapDispatchToProps`

Uncaught Error: `mapDispatchToProps` must return an object. Instead received function() { 
       return computedActions; 
      }. 
    at Object.invariant [as default] (bundle.js:21392) 
    at computeDispatchProps (bundle.js:19996) 
    at new Connect (bundle.js:20049) 
    at ReactCompositeComponentWrapper.mountComponent (bundle.js:7346) 
    at ReactCompositeComponentWrapper.wrapper [as mountComponent] (bundle.js:1536) 
    at Object.mountComponent (bundle.js:5728) 
    at ReactCompositeComponentWrapper.mountComponent (bundle.js:7423) 
    at ReactCompositeComponentWrapper.wrapper [as mountComponent] (bundle.js:1536) 
    at Object.mountComponent (bundle.js:5728) 
    at ReactDOMComponent.mountChildren (bundle.js:14298) 

Hier ist die betreffende Datei (signin.js) :

Die Ansicht "signin.js" funktionierte gut, bis ich den Code für redux-Form hinzufügte. Hier sind die Versionen reagieren, redux, redux-Form ich verwende:

"react": "^0.14.3", 
"react-dom": "^0.14.3", 
"react-redux": "4.0.0", 
"react-router": "^2.0.1", 
"redux": "^3.0.4", 
"redux-form": "^6.6.3" 

Antwort

1

Redux-Form v6 unterstützt Eigenschaft nicht config fields, wurde es in früheren Versionen unterstützt. Um ein Feld zu erstellen, sollten Sie die Komponenten Field, FieldArray or Fields verwenden.

Werfen Sie einen Blick auf die Dokumentation, http://redux-form.com/6.6.3/docs/api/

1

Ich denke, es ist ein Problem, hier

<form onSubmit={handleSubmit(this.handleFormSubmit.bind(this))}> 

Sie sind eine Funktion als Parameter an handleSubmit bereitzustellen, die Retuns inturn ein Wert onSubmit

Try this

class Signin extends Component { 

    render() { 

     const {handleSubmit, fields: {email, password}} = this.props; 

     return (
      <form onSubmit={handleSubmit}> 
       <fieldset className="form-group"> 
        <label>Email:</label> 
        <input {...email} className="form-control"/> 
       </fieldset> 
       <fieldset className="form-group"> 
        <label>Password:</label> 
        <input {...password} className="form-control"/> 
       </fieldset> 
       <button action="submit" className="btn btn-primary">Sign in</button> 
      </form> 
     ) 
    } 
} 

Und in der Parent ou die handleSubmit Funktion wie

handleSubmit = ({email, password}) => { 
    console.log(email, password); //Do what you want with values here 
} 
Verwandte Themen