在网页启动时自动填充列表-React,Redux,Firebase

萨钦·提图斯(Sachin Titus)

我正在创建一个包含两个组件的网页,一个是类别,两个是项目

借助initCategories()函数,我可以在CategoriescomponentDidMount()内部调用,从而可以在屏幕上显示所有类别。initCategories()函数调用,负责获取来自公司的FireStore所有类别的行动

我想在启动时显示“项目”表中具有“类别”字段和“类别”中第一类别ID的所有项目使用mapStateToProps方法firstCategoryId用作道具我试图在action.js文件中调用一个动作,项目内部的componentDidMount()方法中传递此ID,以获取所有项目。

我该如何解决?

更新资料

类别表包含categoryName和categoryId。Items表包含itemId,itemName和类别。项目表中的类别字段保存该项目所属类别的ID

mapStateToProps()

const mapStateToProps = state => {
  console.log("mapping called")
    return {
      items: state.itemReducer.itemsOnDisplay,
      currentCategoryId: state.reducer.currentCategoryId
    };
  }
  const mapDispatchToProps = dispatch => {
    return{
    //   onCategoryAdded: (category) => dispatch(actionCreators.addCategory(category)),
    //   onCategoryDeleted: (categoryId) => dispatch(actionCreators.deleteCategory(categoryId)),
      loadItemsInCategory: (categoryId) => dispatch(itemActionCreators.loadItemsInCategory(categoryId)),
    }
  }

componentDidMount()

componentDidMount(){
  this.props.loadItemsInCategory(this.props.currentCategoryId)
}
萨钦·提图斯(Sachin Titus)

我终于解决了问题。谢谢大家,尤其是@gbalduzzi帮助我解决了这个问题。

据我了解,实际的问题是:创建存储后,reducer将使用默认值初始化。那是第一次调用componentDidMount()的时候。从Firebase下载值后,组件将更新。这次是被触发componentDidUpdate()方法。

componentDidUpdate()

解决方案:
我添加了以下代码。这样,仅当组件使用Firebase中的值更新时,我才加载项目。

componentDidUpdate(prevProps, prevState, snapshot) {
  if(this.props.currentCategoryId!== prevProps.currentCategoryId){
    this.props.loadItemsInCategory(this.props.currentCategoryId)
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用react-redux-firebase时如何重置Recaptcha

来自分类Dev

使用 Redux-Observable 在 React-Redux-Firebase 应用程序中实现自动保存

来自分类Dev

React,Redux和Firebase

来自分类Dev

启动时,firebase Auth出现错误:

来自分类Dev

React / Redux / Firebase createStore配置

来自分类Dev

重装时Redux失去Firebase用户

来自分类Dev

Firebase在应用启动时检索所有数据

来自分类Dev

Android Firebase - .setPersistenceEnabled(true) 时启动时间缓慢

来自分类Dev

登录时自动启动网页

来自分类Dev

登录时自动启动网页

来自分类Dev

react-native redux 重新填充状态

来自分类Dev

如何使Postgres在启动时自动启动

来自分类Dev

在启动时自动启动XBMC

来自分类Dev

Celery:自动启动Worker(在启动时)

来自分类Dev

Gitlab启动时自动启动

来自分类Dev

在启动时自动启动XBMC

来自分类Dev

如何使Postgres在启动时自动启动

来自分类Dev

在启动时自动启动perfmon

来自分类Dev

android broadcastreceiver在启动时自动启动

来自分类Dev

在启动时自动启动SSH

来自分类Dev

在启动时自动启动Firestarter GUI?

来自分类Dev

在 React Native 中自动提交 Redux 表单

来自分类Dev

谷歌应用引擎启动时自动填充谷歌数据存储中的初始数据

来自分类Dev

React + Redux + Firebase简单文件上传

来自分类Dev

React Redux Firebase 上传文件对象

来自分类Dev

在 React redux firebase 中上传文件

来自分类Dev

绑定tableview在启动时未填充

来自分类Dev

启动时自动转发端口?

来自分类Dev

在启动时自动挂载卷组?