t ["function" == typeof Symbol? Symbol.iterator: "@@ iterator"] не является функцией - PullRequest
0 голосов
/ 02 февраля 2019

Использование сгенерированного expo собственного приложения реакции и проблемы при попытке экспортировать мои редукторы и импортировать их в свой магазин.

Все шло хорошо, пока я не решил добавить другой редуктор в свой файл экспорта редуктораи затем получил эту ошибку.

t["function"==typeof Symbol?Symbol.iterator:"@@iterator"] is not a function. 

После некоторых исследований я обнаружил, что проблема заключается в том, что Symbol.iterator не является функцией и относится к моей реализации babel.

У меня естьпробовал: https://github.com/facebook/immutable-js/issues/1305 https://github.com/facebook/react-native/issues/15902

Выложил мое последнее репо сюда:

https://github.com/AgSpine-Group/rn-agspine-app

Package.json выглядит так:

{
  "main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "eject": "expo eject",
    "test": "node ./node_modules/jest/bin/jest.js --watchAll"
  },
  "jest": {
    "preset": "jest-expo"
  },
  "dependencies": {
    "@expo/samples": "2.1.1",
    "@expo/vector-icons": "^9.0.0",
    "axios": "^0.18.0",
    "expo": "^32.0.0",
    "native-base": "^2.10.0",
    "react": "16.5.0",
    "react-native": "https://github.com/expo/react-native/archive/sdk-32.0.0.tar.gz",
    "react-native-vector-icons": "^6.2.0",
    "react-navigation": "^3.0.9",
    "react-redux": "^6.0.0",
    "redux": "^4.0.1",
    "redux-logger": "^3.0.6",
    "redux-persist": "^5.10.0",
    "redux-promise-middleware": "^5.1.1",
    "redux-thunk": "^2.3.0",
    "uuid-v4": "^0.1.0"
  },
  "devDependencies": {
    "@babel/core": "^7.2.2",
    "babel-preset-expo": "^5.0.0",
    "install": "^0.12.2",
    "jest-expo": "^32.0.0",
    "npm": "^6.7.0"
  },
  "private": true
}

Конфигурация babel выглядит следующим образом:

module.exports = function (api) {
  api.cache(true);
  return {
    presets: ['babel-preset-expo'],
  };
};

Файл store.js:

import { createStore, applyMiddleware, compose } from 'redux';
import rootReducer from '../reducers';
import logger from 'redux-logger';
import thunk from 'redux-thunk';
import { AsyncStorage } from 'react-native';

import { persistStore, persistCombineReducers, persistReducer } from 'redux-persist'

const persistConfig = {
  storage: AsyncStorage,
  key: 'root',
}

const persistedReducer = persistCombineReducers(persistConfig, rootReducer);

const middleware = compose(applyMiddleware(
  thunk,
  logger,
), window.devToolsExtension ? window.devToolsExtension() : f => f);

export default () => {
  const store = createStore(persistedReducer, {}, middleware);
  const persistor = persistStore(store);

  return { store, persistor };
}

И мой индексный файл редуктора:

import items from './items';
import form from './form';

export default { items, form };

Проблема возникает, когда я импортирую форму и экспортирую ее.

Я также попытался изменить экспорт на:

export { items, form };
...