Почему реактивная база редукса не работает? - PullRequest
0 голосов
/ 02 ноября 2019

Я изучаю интеграцию firestore с реагировать на родную и получаю эту очень странную ошибку. В этом коде хранилище с усилителями создается в другом файле, а затем используется этим хранилищем в основном файле App.js. Буду признателен за любую помощь.

Ошибка, возникающая на телефоне

store.js

import { createStore, compose } from 'redux'
import { reactReduxFirebase,getFirebase } from 'react-redux-firebase'
import { reduxFirestore,getFirestore } from 'redux-firestore'
import ReduxThunk from 'redux-thunk';
import { initialState, rootReducer } from '../Reducers/index.js'
import fbConfig from './fbConfig'
import firebase from 'firebase/app'
import 'firebase/firestore'

if (!firebase.apps.length) {
   firebase.initializeApp(fbConfig)
}


const enhancers = [
  reduxFirestore(firebase),
  reactReduxFirebase(firebase, {
    userProfile: 'Movies',
    useFirestoreForProfile: true,
  })
]

const reduxDevToolsExtension = window.devToolsExtension
if (
  process.env.NODE_ENV === "development" &&
  typeof reduxDevToolsExtension === "function"
) {
  enhancers.push(reduxDevToolsExtension())
}

const composedEnhancers = compose(
  ...enhancers,
  applyMiddleware(thunk.withExtraArgument({getFirebase,getFirestore}))
)

const store = createStore(rootReducer, initialState, composedEnhancers)


export default store

App.js

import React, { Component } from 'react';
import { Provider } from 'react-redux';
import {View,Platform,StatusBar} from 'react-native';
import { createStore, applyMiddleware } from 'redux';
import ReduxThunk from 'redux-thunk';
import reducers from './src/Reducers';
import SafeAreaView from 'react-native-safe-area-view';
import RootNav from './src/Navigator';
import store from './src/config/store.js'

import TheatreList from './src/Components/TheatreList';


class App extends Component {

  render() {

    return (
        <View style={{flex:1}}>
          <Provider store={store}>
            <RootNav />
          </Provider>
        </View>
    );
  }
}

export default App;

1 Ответ

0 голосов
/ 02 ноября 2019

Я думаю, что вы пытаетесь использовать это неправильно. То, что вы хотите использовать, похоже на это.

Пример

import React from 'react'
import { render } from 'react-dom'
import { Provider } from 'react-redux'
import firebase from 'firebase/app'
import 'firebase/auth'
// import 'firebase/firestore' // <- needed if using firestore
// import 'firebase/functions' // <- needed if using httpsCallable
import { createStore, combineReducers, compose } from 'redux'
import { ReactReduxFirebaseProvider, firebaseReducer } from 'react-redux-firebase'
// import { createFirestoreInstance, firestoreReducer } from 'redux-firestore' // <- needed if using firestore

const fbConfig = {}

// react-redux-firebase config
const rrfConfig = {
  userProfile: 'users'
  // useFirestoreForProfile: true // Firestore for Profile instead of Realtime DB
}

// Initialize firebase instance
firebase.initializeApp(fbConfig)

// Initialize other services on firebase instance
// firebase.firestore() // <- needed if using firestore
// firebase.functions() // <- needed if using httpsCallable

// Add firebase to reducers
const rootReducer = combineReducers({
  firebase: firebaseReducer
  // firestore: firestoreReducer // <- needed if using firestore
})

// Create store with reducers and initial state
const initialState = {}
const store = createStore(rootReducer, initialState)

const rrfProps = {
  firebase,
  config: rrfConfig,
  dispatch: store.dispatch,
  // createFirestoreInstance // <- needed if using firestore
}

// Setup react-redux so that connect HOC can be used
function App() {
  return (
    <Provider store={store}>
      <ReactReduxFirebaseProvider {...rrfProps}>
        <Todos />
      </ReactReduxFirebaseProvider>
    </Provider>
  );
}

render(<App />, document.getElementById('root'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...