2016-09-20 18 views
0

redux-form:5.3.2から6.0.5にアップグレードしました。私は形で私の記号を変更したのだが、次のようになります。reduxFormは状態を小道具にマッピングしていないようです

import React, { Component } from 'react'; 
import { Field, reduxForm } from 'redux-form'; 
import * as actions from '../actions/authActions'; 


class SignIn extends Component { 

    handleFormSubmit({ email, password }) { 
    console.log(this.props); 
    this.props.signinUser({ email, password }, this.props.location); 
    } 

    renderAlert() { 
    if (this.props.errorMessage) { 
     return (
     <div className="alert alert-danger"> 
      {this.props.errorMessage} 
     </div> 
    ); 
    } else if (this.props.location.query.error) { 
     return (
     <div className="alert alert-danger"> 
      Authorization required! 
     </div> 
    ); 
    } 
    } 

    render() { 

    const { message, handleSubmit } = this.props; 

    const renderField = ({input, label, type, meta: { touched, error } }) => (
     <fieldset className="form-group"> 
     <label>{label}</label> 
     <input {...input} className="form-control" /> 
     </fieldset> 
    ) 


    return (
     <form onSubmit={handleSubmit(this.handleFormSubmit.bind(this))}> 
     {this.renderAlert()} 
     <Field name="username" type="text" component={renderField} label="Username"/> 
     <Field name="password" type="password" component={renderField} label="Password"/> 
     <button action="submit" className="btn btn-primary">Sign In</button> 
     </form> 
    ); 
    } 
} 

function mapStateToProps(state) { 
    return { errorMessage: state.auth.error } 
} 

export default reduxForm({ 
    form: 'signin', 
    fields: ['email', 'password'] 
}, mapStateToProps, actions)(SignIn) 

アップグレードの前に、私はFieldコンポーネントを使用していませんでしたが、他のほとんどのeveythingが同じで、自分の行動this.props.signinUserが呼び出さなっていました。しかし、現在はthis.propsには存在しません。 5.3.2へのダウングレードは引き続き機能します。私は段階的に段階的にアップグレードし、どこが壊れているかを見つけ出すプロセスを踏んだわけではありません。

アドバイスはありますか?

答えて

0

そして...私は答えを見つけました。これは、ドキュメントにあるように表示されませんが、それがあるべき

SignIn = reduxForm({ 
    form: 'signin', 
    fields: ['email', 'password'] 
})(SignIn); 

export default connect(mapStateToProps, actions)(SignIn); 

:これまで

export default reduxForm({ 
    form: 'signin', 
    fields: ['email', 'password'] 
}, mapStateToProps, actions)(SignIn) 

:私はこれを変更しなければなりませんでした。

+0

hm ...興味深いreduxFormがreduxストアに接続していませんか? – lustoykov

+0

新しいバージョンでは使用されていましたが、使用されませんでした。 – Gregg

関連する問題