我已经禁用反应devtools和redux devtools.
我一直在寻找解决这个问题几个小时的方法,而且大部分问题都在撰写,而我根本就没有改变代码.
import { createStore, applyMiddleware,compose } from 'redux';
import thunk from 'redux-thunk';
import rootReducer from './reducers';
const initialState={};
const middleware = [thunk];
const store = createStore(rootReducer,initialState,
compose(
applyMiddleware(...middleware),
window.__REDUX_DEVTOOLS_EXTENSION__&& window.__REDUX_DEVTOOLS_EXTENSION__()
)
);
export default store;
Run Code Online (Sandbox Code Playgroud)
我真的不明白为什么会这样.我没有改变任何东西,我做的最后一件事就是把git push origin master放到我的存储库中,突然间我编译时遇到了这个错误:
Iam在我的前端使用这个:
"@material-ui/core": "^3.3.1",
"@material-ui/icons": "^3.0.1",
"axios": "^0.18.0",
"jwt-decode": "^2.2.0",
"prop-types": "^15.6.2",
"react": "^16.6.0",
"react-dom": "^16.6.0",
"react-redux": "^5.1.0",
"react-router-dom": "^4.3.1",
"react-scripts": "2.0.5",
"react-select": "^2.1.1",
"recharts": "^1.3.5",
"redux": "^4.0.1",
"redux-thunk": "^2.3.0",
"typeface-roboto": "0.0.54"
Run Code Online (Sandbox Code Playgroud)
后端:
"dependencies": {
"bcryptjs": "^2.4.3",
"body-parser": "^1.18.3",
"express": "^4.16.4",
"mongoose": "^5.3.11",
"multer": "^1.4.1",
"passport": "^0.4.0",
"passport-jwt": "^4.0.0",
"path": "^0.12.7",
"validator": "^10.9.0",
"xlsx": "^0.14.1"
},
"devDependencies": {
"concurrently": "^4.0.1",
"nodemon": "^1.18.6",
},
Run Code Online (Sandbox Code Playgroud)
结果错误:
Redux:
sul*_*lam 17
将Redux开发工具从2.16.0更新到2.16.1
要么
从您的代码中删除此行
window.__REDUX_DEVTOOLS_EXTENSION__&& window.__REDUX_DEVTOOLS_EXTENSION__()
Run Code Online (Sandbox Code Playgroud)
小智 9
当我想在隐身窗口上测试我的Web应用程序时遇到了同样的问题(扩展名不会显示在隐身窗口上)。
问题是,compose从redux期望它的所有参数都是函数。所以什么时候
window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
Run Code Online (Sandbox Code Playgroud)
在该环境中评估,则返回一个布尔值。
正如@knutwalker所提到的。您需要返回不返回任何内容的函数。这为我解决了
window.__REDUX_DEVTOOLS_EXTENSION__
? window.__REDUX_DEVTOOLS_EXTENSION__()
: f => f
Run Code Online (Sandbox Code Playgroud)
最后一个堆栈显示了对 compose 的调用,client/src/store.js:9其中第二个参数是window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()。
但是,如果您禁用了 devtools, __REDUX_DEVTOOLS_EXTENSION__则未定义并成为 compose 函数的第二个参数。它仍然是显式提供的,这与它通过省略隐式未定义不同,因此 compose 实现认为有两个有效参数并期望它们是函数,而不是未定义的。
如果没有可用的 devtools,您应该返回一个虚拟函数,例如可能,尽管我不太确定确切的签名必须是什么才能满足 createStore 函数。
window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__() : (a) -> a
| 归档时间: |
|
| 查看次数: |
11153 次 |
| 最近记录: |