TypeError: Object (...) не является функцией index.js - PullRequest
0 голосов
/ 07 апреля 2019

Привет, я получаю эту ошибку, когда в моем браузере при запуске моего кода:

TypeError: Object (...) не является функцией ./src/index.js src / index.js: 31

28 |firebaseStateName: 'firebase' 29 |} 30 |const initialState = {};

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

я пытался с помощьюбиблиотека вещей:

http://docs.react -redux-firebase.com / history / v3.0.0 / docs / Integration / 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 Ответ

0 голосов
/ 13 мая 2019

Вот где ваша проблема:

    reactReduxFirebase(firebase, config),
    reduxFirestore(firebase)

В последней версии произошли небольшие изменения в конфигурации, которые вы должны использовать, если используете реактив V6.

* Убедитесь, что вы установили последнюю версию, набрав:

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

http://docs.react -redux-firebase.com / история / v3.0.0 / документы / v3-миграционный 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>
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...