如何在yield调用中传递响应中的数据?

发布时间:2020-07-07 17:10

我有这样的代码

export function* generateMotif({ payload }) {
    try {
        let { detail } = yield select(state => state.user);
        const result = yield call(API.generateMotif, payload, detail.api_token);
        
        yield put({
            type: types.GENERATE_MOTIF_SUCCESS,
            payload: result,
        });
    } catch (err) {
        yield put(handleError(err));

        yield put({
            type: types.GENERATE_MOTIF_FAILURE,
            payload: err,
        });
    }
}

结果中包含用户名,URL,文件名等数据。是否可以在sagas中传递结果中的特定数据?

就像我只想要数据URL或文件名一样,所以我将代码像这样

yield put({
     payload: result.data.url;
});

我已经尝试使用result调试console.log(result.data.url),以在结果中显示data。但是我得到了回复undefined

我的代码中是否缺少任何内容?

希望您能给我一些有关如何解决此问题的建议。非常感谢

回答1