TypeError:Object(...)不是react-redux中的函数

adi*_*mar 3 javascript reactjs redux react-redux

当我尝试在react-redux中创建createStore时,出现了这个奇怪的错误。我不知道为什么我以前在其他应用中这样做过,但它运行良好。

TypeError: Object(...) is not a function
./src/index.js
C:/projects/facebook/facebook-react/src/index.js:14
  11 | import rootReducer from './rootReducer';
  12 | import registerServiceWorker from './registerServiceWorker';
  13 | 
> 14 | const store = createStore(
  15 |     rootReducer,
  16 |     composeWithDevtools(applyMiddleware(thunk))
  17 | );
View compiled
? 6 stack frames were collapsed.
Run Code Online (Sandbox Code Playgroud)

这是我的档案

index.js

import { createStore, applyMiddleware} from 'redux';
import { composeWithDevtools } from 'redux-devtools-extension';
import thunk from 'redux-thunk';
import { Provider } from 'react-redux';
import App from './App';
import rootReducer from './rootReducer';
import registerServiceWorker from './registerServiceWorker';

const store = createStore(
    rootReducer,
    composeWithDevtools(applyMiddleware(thunk))
);


ReactDOM.render(
<BrowserRouter>
    <Provider store={store}>
        <App />
    </Provider>
</BrowserRouter>
, document.getElementById('root'));
registerServiceWorker();
Run Code Online (Sandbox Code Playgroud)

rootReducer

import { combineReducers } from 'redux'; import user from './reducers/user';

export default combineReducers({
    user });
Run Code Online (Sandbox Code Playgroud)

减速机/用户

import { USER_LOGGED_IN } from '../types';

export default function user(state = {}, action={}) {
    switch (action.type) {
        case USER_LOGGED_IN:
            return action.user;
        default:
            return state;
    } }
Run Code Online (Sandbox Code Playgroud)

小智 5

我遇到了同样的问题:我可以在测试应用程序上运行它,而不能将其移到我的主项目中。检查了所有代码100次并进行了广泛研究,但没有找到任何东西可以使connect()正常工作,而不会抛出“ TypeError:Object(…)不是一个函数”

最后,当我运行带有旧react的新版本的redux时,所需要做的只是更新我的主项目中的react和react-DOM。

只需在您的项目文件夹中运行以下内容即可。

npm update
Run Code Online (Sandbox Code Playgroud)

希望这对您有帮助