了解 take effect in redux saga work?
Understand take effect in redux saga work?
我正在开发一个应用程序,然后是 YouTube 上的一门课程。但我不是很了解 take
效果。我知道 take
效果会暂停,直到收到操作。
src/sagas/statsSaga.js
function* watchStatsRequest() {
while (true) {
const { images } = yield take(IMAGES.LOAD_IMAGES_SUCCESS);
for (let i = 0; i < images.length; i++) {
yield fork(handleStatsRequest, images[i].id);
}
}
}
如何yield take(IMAGES.LOAD_IMAGES_SUCCESS)
return 图像数组?
我的完整代码:https://codesandbox.io/s/github/Kalipts/images-load-saga?file=/src/sagas/statsSaga.js
take
等待分派 IMAGES.LOAD_IMAGES_SUCCESS
动作,并在分派该动作后 return 发送动作对象。该操作具有以下结构(基于您的沙箱)
{
type: IMAGES.LOAD_IMAGES_SUCCESS,
images: images,
}
此声明
const { images } = yield take(IMAGES.LOAD_IMAGES_SUCCESS);
将通过解构从动作对象中获取图像 属性 和 return 一个名为 images 的变量,其中包含动作对象的图像数据 属性
为简单起见,代码可以这样重写
//wait for IMAGES.LOAD_IMAGES_SUCCESS to be dispatched
const action = yield take(IMAGES.LOAD_IMAGES_SUCCESS);
//assign the images property from the resulting action object to a new variable
const images = action.images
我正在开发一个应用程序,然后是 YouTube 上的一门课程。但我不是很了解 take
效果。我知道 take
效果会暂停,直到收到操作。
src/sagas/statsSaga.js
function* watchStatsRequest() {
while (true) {
const { images } = yield take(IMAGES.LOAD_IMAGES_SUCCESS);
for (let i = 0; i < images.length; i++) {
yield fork(handleStatsRequest, images[i].id);
}
}
}
如何yield take(IMAGES.LOAD_IMAGES_SUCCESS)
return 图像数组?
我的完整代码:https://codesandbox.io/s/github/Kalipts/images-load-saga?file=/src/sagas/statsSaga.js
take
等待分派 IMAGES.LOAD_IMAGES_SUCCESS
动作,并在分派该动作后 return 发送动作对象。该操作具有以下结构(基于您的沙箱)
{
type: IMAGES.LOAD_IMAGES_SUCCESS,
images: images,
}
此声明
const { images } = yield take(IMAGES.LOAD_IMAGES_SUCCESS);
将通过解构从动作对象中获取图像 属性 和 return 一个名为 images 的变量,其中包含动作对象的图像数据 属性
为简单起见,代码可以这样重写
//wait for IMAGES.LOAD_IMAGES_SUCCESS to be dispatched
const action = yield take(IMAGES.LOAD_IMAGES_SUCCESS);
//assign the images property from the resulting action object to a new variable
const images = action.images