2017-03-24 15 views
0

react.jsとredux-formを使用しています。
LoginFormという名前のコンポーネントはredux形式です。 redux-formで送信すると、callBack関数loginRequestが実行されます。バックエンドにログインメッセージを投稿します。React `this.props`はユーザ定義関数で定義されていません

私は問題に直面しています。 私はconnectを使ってreduxを接続して反応します。 関数loginRequestにあります。 this.propsは未定義ですが、render関数レンダーではthis.props.postLoginが定義されています。

export default class Login extends React.Component { 

    constructor(props){ 
    super(props); 
    this.state = { 

    }; 
    } 

    loginRequest = (values) => { 
    this.props.postLogin(values.username, values.password); 
    } 

    changeAllFun =() => { 
    hashHistory.push('/organizationManager') 
    } 

    //organizationManager 
    render(){ 
    return (
     <div style={style.loginStyle}> 
      <h1>Login</h1> 
      <RaisedButton disableTouchRipple={true} 
         disabled={false} label="postLogin" 
         onTouchTap={this.changeAllFun} 
         ></RaisedButton> 
      <LoginForm onSubmit={this.loginRequest} style={style.loginStyle}/>  
     </div> 
    ); 
    } 
} 

この問題を解決するためのベストプラクティスについてはわかりません。

+0

これはES6のバインディング・コンテキストの問題です。

+0

'Login'コンポーネントがどこに接続されているかを表示できますか?' postLogin' propがどのように渡されているのですか?:)受信している完全なエラーメッセージを投稿できますか? –

+2

@ThànhChungBùiこれはバインディングの問題ではなく、メソッドloginRequestは矢印関数です。 –

答えて

0

ごめんなさい。 thisは定義されていません。リアクションコードを検査し、そのリアクションコードをデバッグするためにブレークポイントを使用すると、 ログインボタンを押すとthis.props.postLoginが実行されます。 私のクロームが私を騙しました。 おそらくReact Developer Toolsのバグです。

関連する問題