我正在尝试使用从Firebase获取数据的SectionList。我曾经用以下代码创建FlatList,它可以完美工作。
firebase.database().ref(`/restaurantes/${currentUser.uid}/dishes`)
.on('value', snapshot => {
dispatch({ type: DISHES_FETCH_SUCCESS, payload: snapshot.val() })
});
,我得到一个包含所有结果的数组(调度仅执行一次) 我试图订购数据,以便于管理。但是,当我尝试以下代码时,对每个结果执行一次调度,因此我的状态仅获得最后一个结果。
firebase.database().ref(`/restaurantes/${currentUser.uid}/dishes`)
.orderByChild("category")
.on('child_added', snapshot => {
dispatch({ type: DISHES_FETCH_SUCCESS, payload: snapshot.val() })
});
我该怎么办?
答案 0 :(得分:0)
您的新代码正在监听child_added
,它会为每个单独的子节点触发。原始代码会监听value
,它会为所有合并结果触发一次。
要按类别顺序获得原始行为:
firebase.database().ref(`/restaurantes/${currentUser.uid}/dishes`)
.orderByChild("category")
.on('value', snapshot => {
dispatch({ type: DISHES_FETCH_SUCCESS, payload: snapshot.val() })
});