Я работаю над подключением Next.js и redux-saga в большом существующем проекте React. Я следую примеру кода 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"
}
}
Мой пакет.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\""
}
}