【问题标题】:React Native, Redux: No Store FoundReact Native,Redux:未找到商店
【发布时间】:2018-03-29 23:08:17
【问题描述】:

我正在使用this

扩展以查看我的 redux 商店。当我打开远程调试器时,在控制台中我连接到 remotedev-server,但我的 redux 工具说找不到商店。

下面是我的店铺设置

 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"
  }
}

我也关注了this

堆栈溢出线程的指令但没有雪茄。我错过了最近更新的任何内容吗?我是否缺少与 react native redux 设置一起使用的软件包?

旁注,我的操作是返回一个已解决的承诺

【问题讨论】:

    标签: reactjs react-native redux react-redux redux-store


    【解决方案1】:

    在您对 createReducer 的调用中:

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

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

    您需要将代码更改为:

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

    【讨论】:

    • 我其实不知道我的预加载状态是什么。我尝试从我的 reducers 目录导入我的初始状态(现在只是一个空数组),这给了我这个错误“ExceptionsManager.js:73 Unexpected key “testData” found in previous state found by the reducer。预计会找到一个已知的 reducer 键中的一个:“testReducer”。意外的键将被忽略。”
    • 我的回答解释了为什么您发布的代码不起作用。但是,您不知道您的预加载状态是什么这一事实向我表明,您可能也没有正确编写减速器。这是你第一次使用 Redux 吗?
    • 不,我在大约 8 个月前使用 Redux。我有/有一个名为 initialState 的文件,它由空数组或基于操作填充的对象组成。我将 Redux 与 React 一起使用,这是我第一次将它与 React Native 一起使用。话虽如此,我的错误与 redux 无关,而与我的 chrome 中未显示的 redux 开发工具有关。如果这有意义的话。
    猜你喜欢
    • 2017-06-23
    • 2016-09-30
    • 2018-03-14
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多