我使用的是react-redux-firebase和redux-firestore包。我正在尝试用useFirestoreConnect钩子连接到redux,但是调用这个钩子之后,它给了我一个TypeError,如图中所示。我已经搜索过GitHub问题、文档和这里,但我没有找到任何解决方案。
错误:Uncaught (in promise) TypeError: Object(...) is not a function
您可以在这张图片中看到整个错误:
发布于 2020-06-23 14:48:57
大家好,我知道问题出在哪里。这是为任何正在寻找解决方案的人准备的。
react-redux-firebase和redux-firestore在版本兼容性方面存在一些问题,所以我要跳过安装软件包的最新版本!redux firebase provider。旧的方式可能是这样的:
createStore= createStore( rootReducer,composeEnhancers( reactReduxFirebase,rrfConfig),reduxFirestore(firebase),applyMiddleware({ getFirebase,getFirestore }) );但是,如果您想在应用程序中实现钩子并使用useFirestoreConnect,这是行不通的。在新版本中,您需要从reactReduxFirebase功能中删除createStore和reduxFirestore,然后使用从react-redux-firebase导入的ReactReduxFirebaseProvider并将应用程序包装在其中,如下所示:
<ReduxProvider store={store}>
<ReactReduxFirebaseProvider {...rrfProps}>
<BrowserRouter>
<AuthIsLoaded>
<App />
</AuthIsLoaded>
</BrowserRouter>
</ReactReduxFirebaseProvider>
</ReduxProvider>并通过道具:火基,反应-还原-火基配置和任何其他你喜欢的东西。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
};https://stackoverflow.com/questions/62451289
复制相似问题