私はredux状態管理を理解していて、ボイラープレートコードとミドルウェアの混乱しているジャングルを交渉しようとしています。信仰を「良い薬」とする。だから私はあなたにこの恐らく初歩的な質問に耐えられることを願っています。redux-thunkとcalling dispatch()を直接使用することの違いは何ですか
私は、redux-thunk
が、アクションクリエイターが非同期に進み、その後の通常のアクションをディスパッチできることを知っています。例えば、私は私のactions.js
にサンクアクションの作成者を定義することができます。
export function startTracking() {
return (dispatch => {
someAsyncFunction().then(result => dispatch({
type: types.SET_TRACKING,
location: result
}))
})
}
そしてそうのように反応させ、コンポーネント内から呼び出す:
はonPress={() => this.props.dispatch(actions.startTracking())}
私の質問はで、どのような利点が上記を行いますコードは、単に非同期コールバックの内部からアクションをディスパッチすることに与えますか?私は私のコンポーネント
onPress={() => actions.startTracking()}
あるいは
onPress={actions.startTracking}
の内側に呼び出します
import { store } from '../setupRedux'
...
export function startTracking() {
someAsyncFunction().then(result => {
store.dispatch({
type: types.SET_TRACKING,
location: result
})
})
}
私は第二の例でやっているようインポートを経由して直接store
にアクセスすると、問題は何があります?
redux creatorでこの回答を確認してください。https://stackoverflow.com/questions/35411423/how-to-dispatch-a-redux-action-with-a-timeout –