2

对于从 redux dev tools chrome 扩展获得最新更新后的一些未知问题,我收到以下警告消息:

Redux 和 Redux DevTools 定义的 Symbol.observable 不匹配。如果未加载 DevTools,这可能会导致您的应用程序行为不同。考虑在导入 Redux 之前填充 Symbol.observable 或完全避免填充 Symbol.observable。

可观察到的符号错误消息

通过阅读错误消息,我了解到 redux 和 redux 开发工具应该使用相同的 Symbol.observable 但它们不是。这很奇怪,因为我没有更改代码中的任何内容,并且我正在按照文档使用代码。

我的问题是你是否知道我应该往哪个方向走?这是我们只需要报告的 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)
    )
  );
4

1 回答 1

1

这是最近几天刚刚添加到 Redux DevTools 代码中的全新检查和警告:

https://github.com/reduxjs/redux-devtools/issues/1002#issuecomment-1011097465

如果您仍在使用 Redux 4.0.5 或更早版本,升级到 Redux 4.1.x 可能会修复此警告(因为 4.1.0 删除了symbol-observablepolyfill 的使用)。

也就是说,你真的应该使用我们官方的 Redux Toolkit 包来设置 Redux 存储并编写你的 Redux 逻辑,而不是createStore直接使用原始的核心方法。

于 2022-01-16T18:05:16.693 回答