更新 react-native 后无法使用 react-native-debugger

Posted

技术标签:

【中文标题】更新 react-native 后无法使用 react-native-debugger【英文标题】:Unable to use react-native-debugger after updating react-native 【发布时间】:2019-03-27 12:28:06 【问题描述】:

React Native 调试器应用版本:v0.8.1

React Native 版本:0.57.3

我收到了这个错误

It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function

在我从 0.55 更新之前它可以工作。

这就是我创建商店的方式。

import  createStore, compose, applyMiddleware  from 'redux';
import thunk from 'redux-thunk';
import reducers from '../reducers';

const store = createStore(
  reducers,
  window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__(),
  compose(applyMiddleware(thunk)),
);

export default store;

当我使用 Chrome 进行调试时,它工作正常。

请帮忙,谢谢

【问题讨论】:

【参考方案1】:

您需要传递两个参数,而不是传递三个参数给createStore 函数(其中一个用于预加载状态,我们在这里没有使用)。为了解决这个问题,在仍然使用 redux 开发工具的同时,您需要使用开发工具作为 composer 本身:

import  createStore, compose, applyMiddleware  from 'redux';
import thunk from 'redux-thunk';
import reducers from '../reducers';

const composeEnhancer = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;

const store = createStore(
  reducers,
  composeEnhancer(applyMiddleware(thunk)),
);

export default store;

在挖掘了 redux 库、调试器应用程序和开发工具的源代码后,我意识到这是解决方案,并找到了这个部分:https://github.com/zalmoxisus/redux-devtools-extension#12-advanced-store-setup

我还看到了一个几乎相同的问题on github,我认为这是您的问题,但我想我会在这里再次发布答案,以防有人在这里看到它。

希望这会有所帮助!

【讨论】:

【参考方案2】:

因为我遇到了同样的问题,想使用 redux-devtools-extension,所以这里提供的解决方案无法 1:1 应用。这个人是如何适应这项工作的:

import  applyMiddleware, combineReducers, createStore  from 'redux';
import appConfigReducer from '../reducers/appConfigReducer';
import logger from 'redux-logger'
import  composeWithDevTools  from "redux-devtools-extension";

const rootReducer = combineReducers(
  config: appConfigReducer
);

const composeEnhancers = composeWithDevTools(
  // options like actionSanitizer, stateSanitizer
);

const configureStore = () => 
  return createStore(rootReducer,
    composeEnhancers(applyMiddleware(logger))
  );
;

export default configureStore;

【讨论】:

以上是关于更新 react-native 后无法使用 react-native-debugger的主要内容,如果未能解决你的问题,请参考以下文章

console.log 不适用于 react-native

React-Native:无法将 babel 更新到 ES7

更新 xcode 13 后 react-native run-ios 命令未成功运行

react-native 应用程序更新警报代码无法更新应用程序

无法对未安装的组件执行 React 状态更新。 useEffect React-Native

运行 react-native ios 模拟器时出现间歇性错误(“由于模拟器已经启动,无法启动您定义的模拟器”)