React Native,Redux:未找到存储库

3

我正在使用这个

扩展工具来查看我的redux store。当我打开我的远程调试器时,在控制台中我连接到了remotedev-server,但是我的redux工具显示未找到store。

以下是我的store设置

 import React, { Component } from 'react';
    import { Provider } from 'react-redux';
    import promiseMiddleware from 'redux-promise-middleware';
    import { createStore, applyMiddleware } from 'redux';
    import { composeWithDevTools } from 'remote-redux-devtools';
    import thunkMiddleware from 'redux-thunk';
    import rootReducer from './src/Reducers/index';
    import NavigationApp from './src/components/Navigation/Navigation';


    const store = createStore(rootReducer, composeWithDevTools(
      applyMiddleware(thunkMiddleware, promiseMiddleware()),
    ));

    export default class App extends Component<{}> {
      render() {
        return (
          <Provider store={store}>
            <NavigationApp />
          </Provider>
        );
      }
    }

package.json 
{
  "name": "App",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "axios": "^0.17.1",
    "react": "16.0.0",
    "react-native": "^0.54.2",
    "react-native-elements": "^0.18.5",
    "react-native-vector-icons": "^4.4.2",
    "react-navigation": "^1.0.0-beta.22",
    "react-redux": "^5.0.7",
    "redux": "^3.7.2",
    "redux-promise-middleware": "^5.0.0",
    "redux-thunk": "^2.2.0",
    "remote-redux-devtools": "^0.5.12"
  },
  "devDependencies": {
    "babel-jest": "21.2.0",
    "babel-preset-react-native": "4.0.0",
    "eslint-config-rallycoding": "^3.2.0",
    "jest": "21.2.1",
    "react-test-renderer": "16.0.0"
  },
  "jest": {
    "preset": "react-native"
  }
}

我也遵循了这个Stack Overflow帖子的说明,但没有成功。最近更新中我错过了什么?我是否缺少与React Native Redux设置相配套的软件包?

另外一点,我的操作返回一个已解决的Promise。

1个回答

1
在调用 createReducer 函数时:
const store = createStore(rootReducer, composeWithDevTools(
  applyMiddleware(thunkMiddleware, promiseMiddleware()),
));

您没有指定商店的初始数据(在文档中称为preloadedState)。

您需要更改代码为:

const store = createStore(rootReducer, preloadedState, composeWithDevTools(
  applyMiddleware(thunkMiddleware, promiseMiddleware())));

我其实不知道我的预加载状态是什么。我尝试从我的reducers目录导入我的初始状态(现在只是一个空数组),但是这给了我一个错误:“ExceptionsManager.js:73在reducer接收到的先前状态中发现意外的键“testData”。期望找到已知的reducer键之一:“testReducer”。将忽略意外的键。” - Generaldeep
我的回答解释了你发布的代码为什么不起作用。然而,你不知道预加载状态是什么这一事实让我觉得你可能也没有正确编写你的 reducer。这是你第一次使用 Redux 吗? - Ben Smith
不,我大约8个月前使用过Redux。我有一个名为initialState的文件,其中包含基于操作填充的空数组或对象。我在React中使用了Redux,这是我第一次在React Native中使用它。话虽如此,我的错误与redux无关,而是关于redux dev工具未在我的Chrome中显示。如果这样说得通的话。 - Generaldeep

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接