React Native Debugger状态未定义

时间:2017-10-19 11:26:50

标签: javascript ios macos reactjs react-native

我正在尝试将远程React Native Debugger用于我的项目。我在Mac上用$ brew update && brew cask install react-native-debugger安装了React-Native-Debugger。然后我添加了带有npm install --save-dev remote-redux-devtools

的Remote-redux-devtools包

我的createStore代码看起来像这个atm。

import { createStore, applyMiddleware } from 'redux'
import { composeWithDevTools } from 'remote-redux-devtools'
import thunk from 'redux-thunk'
/* some other imports */

const composeEnhancers = composeWithDevTools({ realtime: true, port: 8000 })
export default createStore(rootReducer, composeEnhancers(
  applyMiddleware(thunk.withExtraArgument(api), logger, firebaseSave)
))

控制台输出工作正常,但它没有在动作或redux状态上获得。我错过了一步吗?为什么不采用redux?

https://github.com/zalmoxisus/remote-redux-devtools

https://github.com/jhen0409/react-native-debugger

4 个答案:

答案 0 :(得分:2)

将redux devtools扩展名添加到您的createStore

export default createStore(rootReducer, composeEnhancers(
  applyMiddleware(thunk.withExtraArgument(api), logger, firebaseSave)
),window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__())

了解更多信息:https://github.com/zalmoxisus/redux-devtools-extension

答案 1 :(得分:1)

这是我用来使redux状态在react-native-debugger上可见的解决方案: 假设我有一个称为uiReducer的redux reducer:

const rootReducer = combineReducers({
  ui: uiReducer
});

let composeEnhancers = compose;

if (__DEV__) {
    composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
}

const store = createStore(rootReducer, composeEnhancers(applyMiddleware(ReduxThunk)));

请不要忘记导入您的reducer,以及从redux,react-redux和redux-thunk中导入的以下内容:

import { createStore, combineReducers, applyMiddleware, compose } from 'redux';
import { Provider } from 'react-redux';
import ReduxThunk from 'redux-thunk';

现在,您的状态(如果在调试器中可见):

debugger screenshot

我希望它会有所帮助! 谢谢,

答案 2 :(得分:0)

我遇到了同样的问题,我以为React Native调试器可以正常工作, 例如。 反应本地调试器的映射器工作正常,它从源头拉出我的项目文件/目录。 控制台输出运行正常。

但是我看不到有任何恢复。

经过一番尝试和错误后,我发现我必须在自己的Android模拟器上打开JS开发模式。

步骤:Ctrl + M->开发设置->检查JS开发模式->重新加载

答案 3 :(得分:0)

我注意到,与此同时,在开发人员工具中看不到我的源代码,这使我意识到我需要这样做

在IOS Simulator上

Cmd + D>调试JS远程为我工作