次のロジックを実装するにはどうすればよいですか:2つのアクション:syncとasync。そのvalidate()とsave()をしましょう。ユーザーがボタンvalidate()
をクリックすると、ステートストア内の変数isValid
が変更されます。次に、isValid
アクションが実行された場合。条件が他のアクションの後のリビットコールアクション
答えて
これらの機能を「クリックハンドラ」で「ラップ」することができます。
//call it on button click
handleClick =() => {
if (validate()) {
//call save function
save()
}
}
validate =() => {
//do something
//check validness and then
if (valid) return true
}
私は検証ロジックが減速機にあるべきだと思いますが、clicnk hadlerだけではありません。ポイントはそれを '還元的な方法'で実装することです。 – xander27
JSメソッドだけでなく、reduxアクション(http://redux.js.org/docs/basics/Actions.html)を意味します。 – xander27
私はレデューサーがこれに適しているとは思わない。私にとって、私は減速機をこのようなものからきれいに保ち、コンポーネントの状態を変更するためだけに使うのが好きです。あなたはutilsファイルのようなものを作成し、そのすべての機能を保持することができます。しかし、あなたがこれを好きでない場合は、私はあなたがあなたのロジックを指定することができます、あなたはアクションクリエイターでfucntionsを返すことができるように、reduxサンクを見てお勧めします。 – Spooner
希望することを実行する方法はたくさんあります。ただし、一般的なルールとして、導出できるReduxには何も格納しないでください。 isValid
は、フィールドで検証を実行することによって導き出すことができます。さらに、変更中のフォームフィールド値のような中間状態はReduxに属しているとは思わない。私は彼らが有効とみなされ、提出されるまで、彼らをReact状態に保管します。
Spoonerさんがコメントで述べたように、あなたはサンクの中で同期アクションを呼び出すことができます。または、サンクの状態にアクセスできます。
オプション#1
// Action Creator
export default function doSomething(isValid) {
return (dispatch) => {
dispatch(setValid(isValid));
if (isValid) {
return fetch() //... dispatch on success or failure
}
};
}
オプション#2
// Component
dispatch(setValid(isValid));
dispatch(doSomething());
// Action Creator
export default function doSomething() {
return (dispatch, getState) => {
const isValid = getState().isValid;
if (isValid) {
return fetch() //... dispatch on success or failure
}
};
}
- 1. PHP条件付きヘルプヘルプ/その他?
- 2. 更新後の条件付きリダイレクト
- 3. if条件の下でバッチファイル複数のアクション
- 4. 他の条件文がある場合は「Ruby-esque」
- 5. 基本ブール論理 - 他の条件が真である場合にのみ、条件をテストする方法
- 6. 関連クエリ:条件が最大でない条件(内部クエリの条件)
- 7. Restrictions.Disjunction()条件Aと条件B OR条件c AND条件dの
- 8. smartyのその他の条件.thatのnth-childリスト/ div
- 9. コントローラのアクションに基づく条件文( 'if')文
- 10. mvcビューの条件付きロジックとhtmlhelperとアクション
- 11. MVC検索条件付きの条件
- 12. :他の変数を条件と除外特定の値を持つグループによるVaRの値の条件
- 13. 複数の条件の場合で....他のストアドプロシージャ
- 14. JQのJSONパーサーが条件
- 15. Javaでの条件が
- 16. ExpressionEngineの条件文が
- 17. サブソニッククエリ条件A AND((条件B AND条件C)OR(条件D AND条件E AND条件F)
- 18. は、条件が
- 19. が条件
- 20. パースブール条件が
- 21. 条件が
- 22. Ansible条件が
- 23. TimerTask条件の後にAndroidスイッチが表示される
- 24. 他のテーブルの2つのCOUNT()に条件がある場合のクエリ
- 25. いつ他のすべての条件で壊れますか?
- 26. 他のテーブルの条件を更新する
- 27. htaccessの条件
- 28. のPython:条件
- 29. ストアドプロシージャの条件
- 30. つの条件
あなたは検証が発生した場合saveActionを実行し、減速中のisValid変数と他の変数の両方を変更するためにそれを使用する必要があります。 isValid変数がtrueに設定されるのを待つのに実際には使用されません。 –
@bhargavponnapalli問題は第2の動作が非同期(反応 - サンク)であるため、第1の動作と組み合わせることはできません。 – xander27
別の検証アクションではなく、非同期アクション内で検証することができます。ちょうどアイデア。 –