我正在尝试创建一个使用 rxfire 从 Firestore 获取数据的史诗。在每次发出值时,都需要调度一个动作。我的代码如下所示:
const fetchMenu = (action$, _state$) => {
return action$.pipe(
ofType(Types.FETCH_MENU_REQUESTED),
flatMap((async ({ resID }) => {
const firestore = firebase.firestore();
const menuRef = firestore.collection('menus').where('resID', '==', resID);
return collectionData(menuRef, 'id')
.pipe(
map(val => {
return Creators.fetchMenuSuccess(val);
})
)
}
)),
);
};
但是,我收到了错误Actions must be plain objects. Use custom middleware for async actions.
据我了解,pipe
操作员将我的值包装在一个 observable 中,这就是我收到错误的原因,但我不确定该怎么做才能只返回操作。我对 rxjs 还是有点陌生,所以非常感谢任何帮助。