我目前正在学习 React Native 中的一些 redux。但是,如果我尝试将我的 reducer 组合到一个 index.js 文件中,我总是会遇到一个错误。
(0, _redux.combineReducers) is not a function
我看了一些关于如何使用它的教程,我按照每一步操作,但它一直出现在我的屏幕上。
我的 App.js 看起来像这样:
import React, { Component } from 'react';
import { Platform, StyleSheet, Text, View } from 'react-native';
import ReduxThunk from 'redux-thunk';
import { Provider } from 'react-redux';
import { createStore, applyMiddleware } from 'redux';
import reducers from './reducers/reducers';
import { Header } from './components/common/Header';
let store = createStore(reducers, applyMiddleware(ReduxThunk));
export default class App extends Component {
render() {
return (
<Provider store={ store }>
<View style={ styles.container }>
<Header title="Tech Stack"/>
</View>
</Provider>
);
}
}
我的 reducers.js 在文件夹 src/reducers 中:
console.log('HELLO');
import { combineReducers } from 'redux';
console.log( combineReducers );
import LibraryReducer from './LibraryReducer';
const reducers = combineReducers({
libraries: LibraryReducer
});
export default reducers;
// Fixed the log. When i'm loggin combineReducers i get undefined.
LibraryReducer.js
import data from '../data/LibraryList.json';
export default () => data;
Console errors:
[Error log][1]
数据json:
[
{
"id": 0,
"title": "React",
"description": "JS framework"
},
{
"id": 1,
"title": "Vue",
"description": "JS framework"
},
{
"id": 2,
"title": "Angular",
"description": "JS framework"
}
]
包.json
{
"name": "redux",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest"
},
"dependencies": {
"react": "16.6.1",
"react-native": "0.57.5",
"react-redux": "^5.1.1",
"redux": "^4.0.1",
"redux-thunk": "^2.3.0"
},
"devDependencies": {
"babel-jest": "23.6.0",
"jest": "23.6.0",
"metro-react-native-babel-preset": "0.49.2",
"react-test-renderer": "16.6.1"
},
"jest": {
"preset": "react-native"
}
}
谢谢大家的建议!
已解决: 开始了一个新项目,但没有给它取名为 redux 本身。
最佳答案
看起来您遇到的问题与 here 相同.
TLDR:将您称为 redux
的文件夹重命名为其他名称,删除您的 node_modules
并重新安装,它应该可以工作。
关于reactjs - React Native - (0, _redux.combineReducers) 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53420983/