redux-saga函数如何从状态/存储中获取东西?

如何在saga函数中访问redux状态?

import { select } from 'redux-saga/effects';

...

let data = yield select(stateSelectorFunction);

回答:

正如@markerikson已经说过的那样,它redux-saga公开了一个非常有用的API select()来调用selector状态,以便在传奇中获取部分状态。

对于您的示例,一个简单的实现可以是:

/*

* Selector. The query depends by the state shape

*/

export const getProject = (state) => state.project

// Saga

export function* saveProjectTask() {

while(true) {

yield take(SAVE_PROJECT);

let project = yield select(getProject); // <-- get the project

yield call(fetch, '/api/project', { body: project, method: 'PUT' });

yield put({type: SAVE_PROJECT_SUCCESS});

}

}

除了@markerikson

建议的文档之外,D。Abramov还提供了一个非常好的视频教程,其中介绍了如何selectors与Redux

一起使用。在Twitter上也请检查这个有趣的线程。

以上是 redux-saga函数如何从状态/存储中获取东西? 的全部内容, 来源链接: utcz.com/qa/419523.html

回到顶部