Я выполняю рефакторинг приложения и не знаю, как мне получить значения данных из firebase с приложением, использующим ducks / reduxsauce.
У меня есть файл /store/ducks/restaurants.js с ActionCreators - функции с задачами, экспортируемыми отдельно. Эти функции получают список результатов базы данных firebase. Но я не понимаю, как получить к нему доступ и получить результаты.
Файл /store/ducks/restaurant.js:
//import { getFirebase } from "react-redux-firebase";
//import { getFirestore } from "redux-firestore";
import { createActions, createReducer } from "reduxsauce";
export const { Types, Creators } = createActions({
setRestaurant: ["restaurantInfo"],
setRestaurantList: ["restaurantList"],
clearRestaurant: null
});
const INITIAL_STATE = {
loading: false,
data: {},
list: {}
};
const setRestaurant = (state = INITIAL_STATE, action) => {
return {
...state,
loading: false,
data: action.restaurantInfo
};
};
const setRestaurantList = (state = INITIAL_STATE, action) => {
return {
...state,
loading: false,
list: action.restaurantList
};
};
const clearRestaurant = (state = INITIAL_STATE, action) => {
return {
...INITIAL_STATE
};
};
export const syncRestaurantList = ({ city = null, uf = null } = {}) => {
return (dispatch, getState, { getFirebase, getFirestore }) => {
const firestore = getFirestore();
const firebase = getFirebase();
let restaurantsRef = firestore.collection("restaurants");
if (uf) {
restaurantsRef = restaurantsRef.where("uf", "==", uf);
}
if (cidade) {
restaurantsRef = restaurantsRef.where("city", "==", city);
}
restaurantsRef.onSnapshot(snap => {
let list = {};
snap.forEach(doc => {
const data = doc.data();
const id = doc.id;
list[id] = data;
});
dispatch(Creators.setRestaurantList(list));
});
};
};
export default createReducer(INITIAL_STATE, {
[Types.SET_RESTAURANT]: setRestaurant,
[Types.CLEAR_RESTAURANT]: clearRestaurant,
[Types.SET_RESTAURANT_LIST]: setRestaurantList
});
Как получить доступ к syncRestaurantList
результатов со страницы?