繁体   English   中英

React Native Debugger 状态未定义

[英]React Native Debugger state undefined

我正在尝试为我的项目使用远程 React Native Debugger。 我已经使用$ brew update && brew cask install react-native-debugger在我的 Mac 上安装了 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

这是我用来使 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)));

请不要忘记导入您的减速器,以及以下来自 redux、react-redux 和 redux-thunk 的导入:

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

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

调试器截图

我希望它有帮助! 谢谢,

将 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

我遇到了同样的问题,我认为 react native 调试器工作正常,例如 react native 调试器的映射器工作正常,它正在从源头提取我的项目文件/目录。 控制台输出工作正常。

但我没有看到任何 redux 正在兴起。

经过一些试验和错误,我发现我必须在我的 android 模拟器上打开 JS 开发模式。

步骤:Ctrl + M -> Dev Setting -> Check JS Dev Mode -> Reload

我注意到,与此同时,我无法在开发人员工具中看到我的资源,这让我意识到我需要这样做

在 IOS 模拟器上

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM