我正在一个现有的大型React项目中连接Next.js和redux-saga。为此,我遵循了Next.js示例代码。样例代码运行良好,但是当我尝试移动Next.js redux-saga样例代码-- https://github.com/zeit/next.js/tree/master/examples/with-redux-saga --时,我的数据没有存储在存储中。我不确定我存储它的操作是否被调用,或者它是否被延迟调用,但我最终得到了一个空的存储。
我跟踪了整个输出,发现redux-saga任务似乎有一个包含示例代码的done字段,但在我的代码中,它有一个toPromise字段。
我能看到的两个项目之间唯一明显的区别是示例代码使用redux-saga 0.16.0,而我的项目使用^1.0.0。
当我将我的项目切换到使用redux-saga 0.16.0时,它工作得很好。
也许这两个项目都依赖的next-redux-saga正在寻找done领域?会不会是别的原因呢?我附上了两个package.json字段,以防你发现我没有注意到的东西。谢谢你的帮助!
示例代码package.json
{
"name": "with-redux-saga",
"version": "1.0.0",
"license": "ISC",
"scripts": {
"dev": "next",
"build": "next build",
"start": "next start"
},
"dependencies": {
"es6-promise": "4.1.1",
"isomorphic-unfetch": "2.0.0",
"next": "^7.0.2",
"next-redux-saga": "3.0.0",
"next-redux-wrapper": "2.0.0",
"react": "^16.7.0",
"react-dom": "^16.7.0",
"react-redux": "5.0.7",
"redux": "4.0.0",
"redux-saga": "^1.0.0"
},
"devDependencies": {
"redux-devtools-extension": "2.13.2"
}
}我的package.json
{
"name": "PAW-React",
"version": "1.0.0",
"main": "index.js",
"repository": "https://github.com/InterficieIS/PAW-React.git",
"author": "Javier1177 <javierlopezblasco@gmail.com>",
"license": "MIT",
"dependencies": {
"@date-io/date-fns": "^1.0.1",
"@material-ui/core": "^3.8.3",
"autoprefixer": "7.1.5",
"babel-plugin-module-resolver": "^2.7.1",
"babel-plugin-wrap-in-js": "^1.1.0",
"bulma": "^0.6.2",
"date-fns": "^2.0.0-alpha.27",
"dotenv": "^4.0.0",
"eslint-config-airbnb": "^17.1.0",
"express": "^4.16.4",
"glob": "^7.1.2",
"isomorphic-unfetch": "^3.0.0",
"jss": "^9.8.7",
"material-ui-pickers": "^2.1.1",
"next": "^7.0.2",
"next-fonts": "^0.16.0",
"next-redux-saga": "^3.0.0",
"next-redux-wrapper": "^2.1.0",
"node-sass": "^4.4.0",
"normalize.css": "^7.0.0",
"prop-types": "^15.6.2",
"raw-loader": "^0.5.1",
"react": "^16.7.0",
"react-dom": "^16.7.0",
"react-jss": "^8.6.1",
"react-redux": "^6.0.0",
"react-slick": "^0.23.2",
"redux": "^4.0.1",
"redux-saga": "^1.0.0",
"sass-loader": "^6.0.6",
"slick-carousel": "^1.8.1"
},
"devDependencies": {
"babel-eslint": "^7.2.3",
"command-line-args": "^4.0.7",
"cross-env": "^5.1.3",
"eslint": "^5.12.0",
"eslint-config-react-app": "^2.1.0",
"eslint-plugin-flowtype": "^2.41.0",
"eslint-plugin-import": "^2.8.0",
"eslint-plugin-jsx-a11y": "^5.1.1",
"eslint-plugin-react": "^7.5.1",
"file-loader": "^3.0.1",
"url-loader": "^1.1.2",
"redux-devtools-extension": "^2.13.7"
},
"scripts": {
"dev": "PORT=3001 node server.js",
"build": "next build",
"start": "NODE_ENV=production node server.js",
"export": "next export",
"eslint": "eslint . --ext=\"js,jsx\""
}
}发布于 2019-01-29 05:28:29
react-redux版本1.0.0带来了API破坏性的变化,这些变化还没有在这些项目中实现。请跟踪以下问题和拉取请求以了解更多信息:
https://github.com/zeit/next.js/pull/6109
https://github.com/bmealhouse/next-redux-saga/issues/27
https://github.com/bmealhouse/next-redux-saga/pull/29
诚挚的问候
https://stackoverflow.com/questions/54371354
复制相似问题