当我尝试在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;
} }
答案 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)
在以下情况下发生此错误:
react-redux在运行时不可用。 请检查它是否正确捆绑或作为全局(如果从CDN使用)
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