2017-09-07 12 views
0

に表示されませんisValid、バックエンドAPIを呼び出します。私のテストでReduxのストアの更新は、私はこのようになり、検証アクションを作成した小道具

handleClickSubmit() { 

    // Form the request object for validation 
    const request = { 
     id: this.props.id, 
     name: this.props.name 
    }; 

    // Grab the validation object defined inside the compoenent that contains all validation requirements and call validate action. 
    this.props.actions.validate(request, validationsObject); 

    // This is where the issue is. 
    // Although I know for sure, I hit the reducer and set the state of isValid to TRUE, when I get here the isValid is still FALSE 
    if(this.props.isValid) this.props.actions.callApiFunction(request); 
} 

、私は最初だけisValidための状態がFALSEに設定されているように、提出をクリックします。私は自分のフォームに必要なすべてのフィールドにデータを入力し、もう一度submitを押します。

コードが実行されるように、私は私が減速を打つと私は、このプロセス内の任意のasyncを持っていないことに言及することは重要だラインにif(this.props.isValid) this.props.actions.callApiFunction(request);

を押す前にTRUEにisValidを設定していることがわかります。すべてがメモリ内で起こっている。

isValidの状態が原因で何が起こっていても、すばやく更新されない可能性があります。

答えて

0

reduxライフサイクルでは、小道具はまだ更新されませんでした。私はあなたがmapStateToPropsで小道具を設定していると仮定していますか?

validate関数を呼び出した後でおそらく状態の値を取得できますが、コンポーネントの代わりにアクション作成者にこれを移動することをお勧めします。

+0

このすべてのことは、アクション作成者の中でハンドラー機能を除いて起こっています。私はなぜ小道具が更新されないのか分からない。彼らは店から直接読んでいる。 – Sam

+0

あなたのコンポーネントでまだハンドラ関数がどこにあるのか、小道具が更新されていません。これはアクションで処理する必要があります。 – ovation22

+0

アクション作成者のコードを見ると、そこにもエラーが設定されています。私のコンポーネントは小道具としてもエラーを出し、彼らはうまく更新します。なぜこの小道具だけが更新されないのか分かりません。 – Sam

関連する問題