Ошибка типа: undefined не является объектом (оценивается как store.getState) - PullRequest
0 голосов
/ 12 декабря 2018

Я следую учебному пособию Let's Build: Cryptocurrency Native Mobile с 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 не является объектом (оценивает store.getState ')

Что вызывает сбой моей сборки (expo start) при импорте Store.js

Ответы [ 2 ]

0 голосов
/ 01 июля 2019

, если вы импортируете single named export
, например, где вы сделали export const MyComponent = () => {}, вы импортируете его как
import { MyComponent } from "./MyComponent"

, если вы импортируете default export
например, где вы сделали const MyComponent = () => {} export default MyComponent вы бы импортировали его как
import MyDefaultComponent from "./MyDefaultExport"

0 голосов
/ 12 декабря 2018

Кажется, оператор импорта неверен.Должно быть:

import Store from './src/Store';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...