TypeError: Object(...) 不是 index.js 上的函数

Posted

技术标签:

【中文标题】TypeError: Object(...) 不是 index.js 上的函数【英文标题】:TypeError: Object(...) is not a function on index.js 【发布时间】:2019-08-28 19:11:09 【问题描述】:

您好,当我在浏览器中运行代码时出现此错误:

TypeError: Object(...) 不是函数 ./src/index.js src/index.js:31

28 | firebaseStateName: 'firebase' 29 | 30 |常量初始状态 = ;

31 | const store = createStore(rootReducer,initialState, 32 |撰写( 33 | applyMiddleware(thunk.withExtraArgument( getFirebase, getFirestore )), 34 | reactReduxFirebase(firebase, config),

我尝试使用事物库:

http://docs.react-redux-firebase.com/history/v3.0.0/docs/integrations/thunks.html

但是仍然没有成功:/

在我的 index.js 文件下方

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
import  createStore, applyMiddleware, compose  from 'redux'
import rootReducer from './store/reducers/rootReducer'
import  Provider  from 'react-redux'
import thunk from 'redux-thunk'
import  createFirestoreInstance, reduxFirestore, getFirestore  from 'redux-firestore';
import  ReactReduxFirebaseProvider, reactReduxFirebase, getFirebase  from 'react-redux-firebase';
import fbConfig from './config/fbconfig'
import firebase from 'firebase/app'
import 'firebase/firestore'
import 'firebase/auth'
import 'firebase/storage'
import 'firebase/functions'

firebase.initializeApp(fbConfig);
firebase.firestore();
firebase.storage().ref();
firebase.functions();
const config = 
    useFirestoreForProfile:true,
    userProfile: 'Klanten',
    userFirestoreForProfile: true,
    attachAuthIsReady: true,
    firebaseStateName: 'firebase'

const initialState = ;
const store = createStore(rootReducer,initialState,
    compose(
        applyMiddleware(thunk.withExtraArgument( getFirebase, getFirestore )),
        reactReduxFirebase(firebase, config),
        reduxFirestore(firebase)
    )
)

store.firebaseAuthIsReady.then(() => 
    const rrfProps = 
        firebase,
        config: fbConfig,
        dispatch: store.dispatch,
        createFirestoreInstance
    

ReactDOM.render(<Provider store=store><ReactReduxFirebaseProvider ...rrfProps><App /></ReactReduxFirebaseProvider></Provider>, document.getElementById('root'));
    serviceWorker.unregister();
)

这是我的 rootReducer.js

import authReducer from './authReducer'
import shopReducer from './shopReducer'
import  combineReducers  from 'redux'
import  firebaseReducer  from 'react-redux-firebase'
import  firestoreReducer  from 'redux-firestore'

const rootReducer = combineReducers(
    firebase: firebaseReducer,
    firestore: firestoreReducer,
    auth: authReducer,
    shop: shopReducer
)

export default rootReducer

【问题讨论】:

【参考方案1】:

这就是你的问题所在:

    reactReduxFirebase(firebase, config),
    reduxFirestore(firebase)

最新版本的配置有一点变化,如果你使用的是react V6,你必须使用它。

*通过键入以下内容确保安装最新版本:

npm i --save react-redux-firebase@next

http://docs.react-redux-firebase.com/history/v3.0.0/docs/v3-migration-guide.html

+ import  ReactReduxFirebaseProvider  from 'react-redux-firebase'
+ import  createFirestoreInstance  from 'redux-firestore'
- import  reactReduxFirebase  from 'react-redux-firebase' // removed
- import  reduxFirestore  from 'redux-firestore'          // removed

const store = createStore(
  rootReducer,
  initialState,
  compose(
-    reactReduxFirebase(firebase, rrfConfig), // removed
-    reduxFirestore(firebase)
    //  applyMiddleware(...middleware)       // removed
  )
)

+ const rrfProps = 
+   firebase,
+   config: rrfConfig,
+   dispatch: store.dispatch,
+   createFirestoreInstance // <- needed if using firestore
+ 
const App = () => (
  <Provider store=store>
+   <ReactReduxFirebaseProvider ...rrfProps>
      <Todos />
+   </ReactReduxFirebaseProvider>
  </Provider>
);

【讨论】:

以上是关于TypeError: Object(...) 不是 index.js 上的函数的主要内容,如果未能解决你的问题,请参考以下文章

TypeError: Object(...) 不是函数(匿名函数)

TypeError: Object(...) 不是 index.js 上的函数

Angular:错误:未捕获(承诺):TypeError:Object(...)不是函数

TypeError:Object.entries 不是函数

未捕获的 TypeError:Object(...)(...).Class 不是函数

TypeError: Object(...) 不是函数;尝试创建 redux 商店时