【问题标题】:React reading from firebase, getting error从firebase反应读取,得到错误
【发布时间】:2019-05-18 15:11:12
【问题描述】:

我正在尝试从 firebase 集合中获取数据,但出现错误,有人可以帮忙吗? 我收到此错误

错误:未找到 react-redux 的上下文。如果您使用 react-redux v6,则需要 v3.. 版本的 react-redux-firebase。请查看 v3 迁移指南:

这是我的代码。

import React, { Component } from 'react'
import Notifications from './Notifications';
import ProjectList from '../projects/ProjectList';
import {connect} from 'react-redux';
import {firestoreConnect} from 'react-redux-firebase';
import {compose} from 'redux';
import { firebaseConnect, isLoaded, isEmpty } from 'react-redux-firebase'

class Dashboard extends Component {
render() {

return (
  <div className="dashboard container">
    <div className="row">
        <div className="col s12 m6"><ProjectList projects={this.props.projects}></ProjectList></div>
        <div className="col s12 m5 offset-m1"><Notifications></Notifications></div>
    </div>
  </div>
)
}
}
const mapStateToProps = (state) =>
{
  console.log(state);
 return ({projects:state.projectReducer.projects})
}
export default compose(firebaseConnect([
'projects'
]), connect(mapStateToProps)) (Dashboard)

我试过这个导出,但同样的错误

export default compose(connect(mapStateToProps), firestoreConnect([
{collection:'project'}
])) (Dashboard)

这是我的 package.json

{
"name": "myproject",
"version": "0.1.0",
"private": true,
"dependencies": {
"firebase": "^5.7.0",
"firedux": "^1.1.0",
"react": "^16.6.3",
"react-dom": "^16.6.3",
"react-redux": "^6.0.0",
"react-redux-firebase": "^2.2.5",
"react-router-dom": "^4.3.1",
"react-scripts": "2.1.1",
"redux": "^4.0.1",
"redux-firestore": "^0.6.0",
"redux-thunk": "^2.3.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": [
">0.2%",
"not dead",
"not ie <= 11",
"not op_mini all"
]
}

【问题讨论】:

    标签: reactjs firebase


    【解决方案1】:

    如果您确实使用npm 安装了这些软件包。降级到react-redux-firebase@2.2.5react-redux@5.1.1 确实解决了我的问题。注意事项:如果您在学习某人的教程时遇到此类错误,我建议您首先确认他们正在使用的依赖项的版本。 npm 会给你带来麻烦。

    【讨论】:

      【解决方案2】:

      上面的@kabanny 非常正确。

      如果您真的想使用支持 context api 的 react-redux-firebase 的下一版本,请自行承担以下风险。

      npm install react-redux-firebase@next
      

      还可以查看migration guide

      【讨论】:

        【解决方案3】:

        如果您按照某人的示例而不是构建生产应用程序,则可以切换到 react-redux 5.1.1。

        只需将 package.json 中的 "react-redux": "^6.0.0", 更改为 "react-redux": "^5.1.1", 并运行 npm install

        【讨论】:

          【解决方案4】:

          错误很明显,你使用的是react-redux-firebase:^2.2.5,而你需要使用v3,因为你使用的是react-redux:^6.0.0

          你必须更新react-redux-firebase

          【讨论】:

          • 我使用 npm install react-redux-firebase redux-firestore 安装包,它应该已经安装了最新的包。我是 React 新手,如何升级包?只需更新 package.json 并保存?
          • react-redux-firebase v3 仍处于 alpha 版本,使用 npm install 时将无法使用。在这种情况下,您可能需要将 react-redux 降级到最新版本到 5.1.1
          • 工作了,谢谢。如何检查 react-redux-firebase 的哪个版本与 react-redux 兼容?
          • 我想你可以查看 react-redux-firebase 的 changelogs 或 package.json
          猜你喜欢
          • 2022-06-13
          • 2020-03-31
          • 2022-11-09
          • 2014-06-14
          • 2015-07-27
          • 1970-01-01
          • 1970-01-01
          • 2013-12-23
          • 1970-01-01
          相关资源
          最近更新 更多