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

时间:2018-08-27 09:15:48

标签: 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.

这是我的文件

  

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();
  

rootReducer

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

export default combineReducers({
    user });
  

减速机/用户

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;
    } }

5 个答案:

答案 0 :(得分:0)

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

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

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

@if (request()->is('shop'))
    <a class="nav-link js-scroll-trigger" href="#page-top">Shop</a>
@elseif (request()->is('product'))
    <a class="nav-link js-scroll-trigger" href="/shop">Shop</a>             
@endif

希望这对您有帮助

答案 1 :(得分:0)

在以下情况下发生此错误:

  1. react-redux在运行时不可用。 请检查它是否正确捆绑或作为全局(如果从CDN使用)

  2. react版本,redux与react-redux不兼容。将其中一些更新为最新

答案 2 :(得分:0)

我正在使用react-boilerplate库,并进行了“ npm update”,由于某种原因它破坏了“ aws-amplify”。因此,我取消了我的package.json和package-lock.json的舞台,并返回到先前的package.json和package-lock.json运行了“ npm install”。 突然解决了“ Object(...)不是函数”错误。

答案 3 :(得分:0)

如果您正在查看此消息(大约是2020年),并且存在上述相同问题,请确保在import语句中输入

getProjectTriggers()

应该是

import { composeWithDevtools } from "redux-devtools-extension";

名称区分大小写。您需要确保正确输入了“ DevTools”的大写字母。

答案 4 :(得分:0)

在我的情况下,错误来自拼写错误 'composeWithDevTools' 我试图导入 'composeWitdhDevTools' 愚蠢的我......请检查导入。

您还可以将所有导入悬停在鼠标上,看看您是否真正导入了正确的方法..对于 composeWithDevTools,当您这样做时,它应该如下所示:

(alias) function composeWithDevTools<StoreExt, StateExt>(...funcs: Array<StoreEnhancer<StoreExt>>): StoreEnhancer<StoreExt> (+1 overload)
import composeWithDevTools