Использование сгенерированного 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 };