TypeError: undefined is not an object (evaluating 'store.getState')

新手上路,请多包涵

我正在关注 Let’s Build:Cryptocurrency Native Mobile App With React Native + Redux 教程。

当我在 App.js 中创建我的商店时,该应用程序运行正常

import { createStore, applyMiddleware, compose } from 'redux';
import devTools from 'remote-redux-devtools';
import React, { Component } from 'react';
import { Platform, View } from 'react-native';
import { Provider } from 'react-redux';
import promise from 'redux-promise';
import thunk from 'redux-thunk';
import logger from 'redux-logger';

import { Header, CryptoContainer } from './src/components';
import rootReducer from './src/reducers';

const middleware = applyMiddleware(thunk, promise, logger);

const Store = createStore(rootReducer, compose(middleware, devTools({
  name: Platform.OS,
  hostname: 'localhost',
  port: 5678
}), ));

export default class App extends Component {
  render() {
    return (
      <Provider store={Store}>
        <View>
          <Header />
          <CryptoContainer />
        </View>
      </Provider>
    );
  }
}

但是当我将存储逻辑移动到新文件 ./src/Store.js 时,

 import { Platform } from 'react-native';
import { createStore, applyMiddleware, compose } from 'redux';
import devTools from 'remote-redux-devtools';
import promise from 'redux-promise';
import thunk from 'redux-thunk';
import logger from 'redux-logger';

import rootReducer from './reducers';

const middleware = applyMiddleware(thunk, promise, logger);

const Store = createStore(rootReducer,compose(middleware,devTools({
            name: Platform.OS,
            hostname: 'localhost',
            port: 5678
        }),
    )
);

export default Store;

并将其用于 App.js 就像

import React, { Component } from 'react';
import { View } from 'react-native';
import { Provider } from 'react-redux';

import { Header, CryptoContainer } from './src/components';
import { Store } from './src/Store';

export default class App extends Component {
  render() {
    return (
      <Provider store={Store}>
        <View>
          <Header />
          <CryptoContainer />
        </View>
      </Provider>
    );
  }
}

我得到

TypeError: undefined is not an object (evaluating ‘store.getState’)

当我导入 Store.js 时,是什么导致我的构建 ( expo start ) 失败?

原文由 Thomas 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 562
2 个回答

似乎导入语句不正确。它应该是:

 import Store from './src/Store';

原文由 laurent 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果您要导入 single named export

例如,你在哪里完成了 export const MyComponent = () => {} 你会导入它

import { MyComponent } from "./MyComponent"

如果您要导入 default export

例如,你在哪里完成了 const MyComponent = () => {} export default MyComponent 你会导入它

import MyDefaultComponent from "./MyDefaultExport"

原文由 Itunu Adekoya 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题