web-dev-qa-db-fra.com

"TypeError: l'objet (...) n'est pas une fonction" react-redux-firebase

J'essaie de créer un projet dans React et j'utilise Firebase. Dans mon projet react-redux-firebase, une ligne de code a fait une erreur mais je n'ai pas pu résoudre ce problème. Comment Je corrige ce "TypeError: l'objet (...) n'est pas une fonction"

J'ai recherché ce problème mais je n'ai pas pu le résoudre.

Je suis en train de suivre un tutoriel où la version React est 16.4.1. Je ne suis pas sûr que ce soit le problème ou non

fichier 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 { reduxFirestore, getFirestore } from "redux-firestore";
import { reactReduxFirebase, getFirebase } from "react-redux-firebase";
import fbConfig from "./config/fbConfig";

const store = createStore(
  rootReducer,
  compose(
    applyMiddleware(thunk.withExtraArgument({ getFirebase, getFirestore })),
    reduxFirestore(fbConfig),
    reactReduxFirebase(fbConfig)
  )
);

si je commente le reatReduxFirebase () alors cela fonctionne bien mais j'ai besoin de cela pour fonctionner

Vous pouvez trouver tous les codes ici: https://github.com/martuza-shimul/React-Blog-app

Je reçois cette erreur à chaque fois:

TypeError: Object(...) is not a function
Module../src/index.js
i:/Learning new things/react/pma/src/index.js:17
  14 | const store = createStore(
  15 |   rootReducer,
  16 |   compose(
> 17 |     applyMiddleware(thunk.withExtraArgument({ getFirebase, getFirestore })),
  18 |     reduxFirestore(fbConfig),
  19 |     reactReduxFirebase(fbConfig)
  20 |  

Je ne sais pas comment résoudre ce problème. Un peu d'aide/indice vraiment apprécié.

7
Martuza Shimul

L'activateur de magasin reactReduxFirebase est supprimé dans la version v3 et supérieure. Vous pouvez maintenant créer une instance Firebase à l'aide de fournisseurs de contexte. La même chose peut maintenant être faite comme:

const store = createStore(
  rootReducer,
  compose(
   applyMiddleware(thunk.withExtraArgument({ getFirebase, getFirestore })),
   reduxFirestore(fbConfig)
 )
);

const rrfProps = {
firebase,
config: fbConfig,
dispatch: store.dispatch
}

const App = () => (
  <Provider store={store}>
    <ReactReduxFirebaseProvider {...rrfProps}>
      <Todo />      // your Component
    </ReactReduxFirebaseProvider>
  </Provider>
 );

À partir de maintenant, le "reduxFirestore" fonctionne bien, donc je veux le laisser tel quel, mais je suppose que la même chose va lui arriver dans les prochains jours. C'est donc une bonne idée d'omettre la composition et la reduxFirestore (fbConfig) et d'utiliser à la place:

import { createFirestoreInstance } from 'redux-firestore'

et ajoutez createFirestoreInstance à rrfProps comme ci-dessous:

const rrfProps = {
firebase,
config: rrfConfig,
dispatch: store.dispatch,
createFirestoreInstance 
}

Pour plus d'informations, consultez: http://react-redux-firebase.com/docs/v3-migration-guide.html#remove-createFirebaseConnect-and-createFirestoreConnect

0
Ashish Bastola