react-native - orderByChild() 分派多次
问题描述
我正在尝试使用从 firebase 获取的数据制作 SectionList。我曾经使用以下代码创建 FlatList 并且效果很好。
firebase.database().ref(`/restaurantes/${currentUser.uid}/dishes`)
.on('value', snapshot => {
dispatch({ type: DISHES_FETCH_SUCCESS, payload: snapshot.val() })
});
我得到一个包含所有结果的数组(调度只执行一次)我试图让数据排序,这样它就很容易管理。但是当我尝试以下代码时,每个结果都执行了 1 次调度,所以我的状态只得到最后一个结果。
firebase.database().ref(`/restaurantes/${currentUser.uid}/dishes`)
.orderByChild("category")
.on('child_added', snapshot => {
dispatch({ type: DISHES_FETCH_SUCCESS, payload: snapshot.val() })
});
我能做些什么?
解决方案
您的新代码正在侦听child_added
,它会为每个单独的子节点触发。原始代码监听value
,它会为所有组合结果触发一次。
要按类别顺序获取原始行为:
firebase.database().ref(`/restaurantes/${currentUser.uid}/dishes`)
.orderByChild("category")
.on('value', snapshot => {
dispatch({ type: DISHES_FETCH_SUCCESS, payload: snapshot.val() })
});
推荐阅读
- angular - 全局styles.css中的角度背景颜色不起作用
- ruby - TypeError 没有将 nil 隐式转换为 String
- javascript - 单独的点击事件功能
- reactjs - 传递 React 组件的最佳方式是什么?
- r - 将 itsadug::gamtabs 与 Rmarkdown 一起使用:表格无法正确显示
- python - Selenium Python遍历Web表格列,条件为真后停止,如果条件为假则抛出错误
- xcode - Xcode 故事板的幕后发生了什么?
- django - 如何自动测试或检查 __str__ 中使用的属性是否存在于我的 Django 模型的类中?
- python-3.x - 可变定位的图像标准化
- android - 如何在 NativeScript 中使用原生 API?