Javascript 无法使用Redux saga作为我的中间件从React Native中的API接收数据

Javascript 无法使用Redux saga作为我的中间件从React Native中的API接收数据,javascript,reactjs,react-native,redux,redux-saga,Javascript,Reactjs,React Native,Redux,Redux Saga,我从API Django REST框架发出get请求,返回产品的数据名img。我在React Native with Redux中使用Redux saga作为中间件。然而,我似乎无法收到数据 以下是我对get请求的操作: 导出函数getProductList{ 类型:获取产品列表 } 这是我的api.js文件: const urlGetProducts=https://hero-pregbackend.herokuapp.com/shop/'; 常量urlOrderUltrascan=https

我从API Django REST框架发出get请求,返回产品的数据名img。我在React Native with Redux中使用Redux saga作为中间件。然而,我似乎无法收到数据

以下是我对get请求的操作:

导出函数getProductList{ 类型:获取产品列表 } 这是我的api.js文件:

const urlGetProducts=https://hero-pregbackend.herokuapp.com/shop/'; 常量urlOrderUltrascan=https://hero-pregbackend.herokuapp.com/ultrascan/order_scan/'; export const getProductsFromApi=函数*{ const response=yield fetchurlGetProducts{ 方法:'GET', 标题:{ “Accept':“application/json、application/xml、text/plain、text/html、****”, //“内容类型”:“应用程序/json”, }, 正文:, }; const products=yield response.status==200?response.json:[] 退货产品; } 导出常量Api={ getProductsFromApi, } 我的传奇档案:

从“../actions/PRODUCTS”导入{GET_PRODUCTS_LIST,GET_PRODUCTS_ERROR}; 从“../actions/ULTRASCAN”导入{ULTRASCAN_SUCCESS,ULTRASCAN_FAIL}; 从“redux saga/effects”导入{takeEvery、call、put、select、takeLatest}; 从“/Api”导入{Api}; 函数*获取产品{ 试一试{ const receivedProducts=yield Api.getProductsFromApi; 产量投入{type:GET_PRODUCTS_LIST,receivedProducts:receivedProducts} }捕捉错误{ 产量输出{type:GET_PRODUCTS_ERROR,ERROR}; } } 导出函数*productSaga{ 产量:每件产品清单,每件产品清单; } 我的行动计划:

从“../actions/ultrascan”导入{GET_PRODUCTS_LIST,GET_PRODUCTS_ERROR,GET_PRODUCTS_DETAILS,GET_DETAILS_ERROR}”; 常量初始状态={ 产品列表:[], //产品详细信息:[], isFetching:false, 错误:null, }; const productsReducer=state=initialState,action=>{ 开关动作类型{ 案例获取产品列表: 返回{ 状态 //是的, productList:action.receivedProducts, isFetching:false, } 案例获取产品错误: 返回{ 状态 错误:action.error } 违约: 返回状态; } } 导出默认产品还原器;
更改您的操作以传递响应

   export function getProductList(receivedProducts) {
    return {
            type: GET_PRODUCTS_LIST,
            receivedProducts
    }
   }
还要更改API响应:

function* fetchProducts(){
    try {
        const receivedProducts = yield Api.getProductsFromApi();
        yield put(getProductList(receivedProducts))
    ....

更改您的操作以传递响应

   export function getProductList(receivedProducts) {
    return {
            type: GET_PRODUCTS_LIST,
            receivedProducts
    }
   }
还要更改API响应:

function* fetchProducts(){
    try {
        const receivedProducts = yield Api.getProductsFromApi();
        yield put(getProductList(receivedProducts))
    ....

谢谢@RoyB让我试试看谢谢@RoyB让我试试看