gpt4 book ai didi

redux - 无法使用 redux-saga 从服务器产生 json 响应

转载 作者:行者123 更新时间:2023-12-02 03:43:49 26 4
gpt4 key购买 nike

我正在尝试使用堆栈react redux和redux-saga并了解所需的最少管道。

我做了一个 github 存储库来重现我收到的错误:

  1. https://github.com/kasra0/react-redux-saga-test.git
  2. 运行应用程序:npm run app
  3. 网址:http://localhost:3000/

该应用程序由一个简单的组合框和一个按钮组成。从组合中选择一个值后,单击按钮将调度一个仅包含获取一些 json 数据的操作。服务器收到正确的请求(基于所选值),但在 let json = Yield call([res, 'json']) 行。我收到错误:

我从浏览器收到的错误消息:

 index.js:2177 uncaught at equipments at equipments 
at takeEvery
at _callee
SyntaxError: Unexpected end of input
at runCallEffect (http://localhost:3000/static/js/bundle.js:59337:19)
at runEffect (http://localhost:3000/static/js/bundle.js:59259:648)
at next (http://localhost:3000/static/js/bundle.js:59139:9)
at currCb (http://localhost:3000/static/js/bundle.js:59212:7)
at <anonymous>

它来 self 的一个传奇故事:

import {call,takeEvery,apply,take}  from 'redux-saga/effects'
import action_types from '../redux/actions/action_types'

let process_equipments = function* (...args){
let {department} = args[0]
let fetch_url = `http://localhost:3001/equipments/${department}`
console.log('fetch url : ',fetch_url)
let res = yield call(fetch,fetch_url, {mode: 'no-cors'})
let json = yield call([res, 'json'])
// -> this is the line where something wrong happens
}

export function* equipments(){
yield takeEvery(action_types.EQUIPMENTS,process_equipments)
}

我在管道中做错了什么,但我找不到哪里。

非常感谢您的帮助!

卡斯拉

最佳答案

这是另一种调用 .json() 的方法,无需使用 call 方法。

let res  =  yield call(fetch,fetch_url, {mode: 'no-cors'})

// instead of const json = yield call([res, res.json]);
let json = yield res.json();

console.log(json)

关于redux - 无法使用 redux-saga 从服务器产生 json 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47499340/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com