大家好,我弄清楚问题出在哪里。这适用于任何正在寻找解决方案的人。
react-redux-firebase
并且redux-firestore
在版本兼容性方面存在一些问题,所以跳过我安装了最新版本的软件包!
很明显,旧版本和新版本在为您的应用程序提供redux firebase provider
. 旧方式可能如下所示:
const store = createStore(
rootReducer,
composeEnhancers(
reactReduxFirebase(firebase, rrfConfig),
reduxFirestore(firebase),
applyMiddleware(thunk.withExtraArgument({ getFirebase, getFirestore }))
)
);
但是如果你想在你的应用程序中实现钩子并使用useFirestoreConnect
this 将不起作用。在新版本中,您需要从func 中删除reactReduxFirebase
and ,而是使用导入的 from并将您的应用程序包装在其中,如下所示:reduxFirestore
createStore
ReactReduxFirebaseProvider
react-redux-firebase
<ReduxProvider store={store}>
<ReactReduxFirebaseProvider {...rrfProps}>
<BrowserRouter>
<AuthIsLoaded>
<App />
</AuthIsLoaded>
</BrowserRouter>
</ReactReduxFirebaseProvider>
</ReduxProvider>
并传递props:firebase、react-redux-firebase 配置和任何其他你想要的东西。rrfProps 是这样的:
const rrfProps = {
firebase,
config: rrfConfig,
dispatch: store.dispatch,
createFirestoreInstance, //since we are using Firestore
};
这是 react-redux-firebase 配置(rrfConfig):
const rrfConfig = {
userProfile: "users",
useFirestoreForProfile: true, // Firestore for Profile instead of Realtime DB
attachAuthIsReady: true, // attaches auth is ready promise to store
};