#redux-saga での stateの取り方
saga でaction の内容を取るときはtake
を使ってキャッチしてこれる
const action = yield take('GET_HOGE');
ここからaction.type
とかaction.payload
とかを色々使う
##やりたいこと
###stateとactionを比較してputしたい
現在のstate
情報はactionには入って来ないのでちょっと困った
なので select
を使う
redux-saga 公式 select()
公式のAPIを見るとselect
は getState()
と一緒だよって公式に書いてある
import { select } from 'redux-saga/effects';
const state = yield select(); // store.getState()と同じ
これで一旦、stateの情報は全て取ってこれる
ここから必要な情報だけ取ってくる
##selectors を作成
hoge state を取ってくるselectorを作成
selectors/index.js
export const getHoge = state => state.hoge;
これをimport して select()
の引数に与える
import { select } from 'redux-saga/effects';
//selector
import { getHoge } from 'selectors';
const state = yield select(getHoge);
これでHogeのstateが取ってこれた!!以上!