对于从 redux dev tools chrome 扩展获得最新更新后的一些未知问题,我收到以下警告消息:
Symbol.observable as defined by Redux and Redux DevTools do not match. This could cause your app to behave differently if the DevTools are not loaded. Consider polyfilling Symbol.observable before Redux is imported or avoid polyfilling Symbol.observable altogether.
通过阅读错误消息,我了解到 redux 和 redux 开发工具应该使用相同的 Symbol.observable 但它们不是。这很奇怪,因为我没有更改我的代码中的任何内容,并且我正在使用 documentation 中的代码.
我的问题是你是否知道我应该往哪个方向走?这是我们只需要报告的 chrome 扩展错误吗?
我正在使用名称为 Redux DevTools 的最新 chrome 扩展.我注意到,如果我卸载 chrome dev-tool 扩展,此警告消息将不再出现。
我的代码如下所示:
// The redux-devtools-extension is renamed to this npm package
import { composeWithDevTools } from "@redux-devtools/extension";
// Some code here ...
const composeEnhancersPersonalProject = composeWithDevTools({
name: `My Project`,
});
// Some other code here ...
const myStore = createStore(
persistedReducer,
composeEnhancersPersonalProject(
applyMiddleware(serverRequestMiddleware, rehydrateMiddleware)
)
);
最佳答案
经过几个小时的研究和反复试验,我终于找到了解决此警告的方法。
根据 github comment您可以在 React/Redux 项目的最开始添加以下行:
// eslint-disable-next-line
import Symbol_observable from 'symbol-observable';
似乎出于一个奇怪的原因,我的项目没有填充 Symbol observable,所以如果我们添加 npm 库 symbol-observable警告正在消失。好消息是尝试最新的
create-react-app
带有模板的项目redux
(例如 npx create-react-app my-app --template redux
),问题不再存在。所以它应该与我的项目中特别提到的@markerikson 的版本组合有关。
关于javascript - 更新到最新的 Redux Dev Tools 扩展后,我得到 : "Symbol.observable as defined by Redux and Redux DevTools do not match.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70728011/