📌  相关文章
📜  “TypeError: Object(...) is not a function” react-redux-firebase - CSS (1)

📅  最后修改于: 2023-12-03 15:06:09.216000             🧑  作者: Mango

TypeError: Object(...) is not a function 介绍

当使用react-redux-firebase时,有时会遇到TypeError: Object(...) is not a function错误,这通常是因为有些代码库已经升级到v3react-redux-firebase仍然在使用旧版本。

这个错误通常在使用React 16+Redux 4+时出现,并且是由于新的hook API,在react-redux-firebase v2版本中并没有支持。

解决方案
  1. 升级react-redux-firebasev3

    react-redux-firebase的最新版本已经支持新的hook API。如果您使用的是早期版本,请尝试将其升级到最新版本。

  2. 回滚到react-redux-firebase的旧版本

    如果您无法或不想升级您的依赖项,您可以降级react-redux-firebase到旧版本,在v2中使用react-reduxconnect方法来替换hooks API

  3. 手动绑定用于react-redux-firebase的store

    如果降级不可行,则可以尝试手动绑定redux store并将其传递给react-redux-firebase,以便它可以使用您的Redux数据存储。以下是一个示例代码片段,提供了手动绑定的参考示例:

    import { createStore, combineReducers } from 'redux'
    import { firebaseReducer } from 'react-redux-firebase'
    
    const rootReducer = combineReducers({
      firebase: firebaseReducer
      // ... add additional reducers here (if required)
    })
    
    const store = createStore(
      rootReducer,
      // initial state (if required)
    )
    
    // Manually bind firebase to store
    const rrfProps = {
      firebase,
      config: fbConfig,
      dispatch: store.dispatch     
    }
    
    ReactDOM.render(
      <Provider store={store}>
        <ReactReduxFirebaseProvider {...rrfProps}>
          <App />
        </ReactReduxFirebaseProvider>
      </Provider>,
      document.getElementById("root")
    );
    
结论

如果您在使用react-redux-firebase时遇到了“TypeError: Object (...) is not a function”错误,请尝试使用上述解决方案之一解决问题。如果问题仍然存在,请查阅相关社区文档,或向组件的作者提出问题反馈。