Как разбить Cloud-Firestore на React-Native? - PullRequest
1 голос
/ 28 октября 2019

Я работаю с Cloud Firestore и в данный момент я бы хотел разбить на страницы все доступные записи. У меня есть список ресторанов, и я использую компонент React-native-snap-carousel для просмотра каждого ресторана, полученного из БД. В настоящее время я выбираю все рестораны одновременно, и мы все знаем, что это не очень хорошая вещь, мне нужно разбить на страницы. Мне нужно выбирать 3 ресторана за раз, поэтому каждый раз, когда пользователь смахивает карусель, мне нужно получать 3 следующих ресторана.

Это код, который я пытаюсь реализовать, но он выдает эту ошибку

"Слишком много аргументов для startAt (). Количество аргументов должно быть меньше или равноколичество выражений orderBy (). "

this.state = {
        loading: false,
        city: '',
        All: [],
        itemsPerPage: 3
    };

componentDidMount() {
    this.getRestaurants();
}

componentDidUpdate(prevProps, prevState) {
    const isDifferentPage = this.state.All !== prevState.All
    if (isDifferentPage) this.getRestaurants()
  }

getRestaurants = () => {
    const {All, itemsPerPage} = this.state;
    const startAt = All * itemsPerPage - itemsPerPage;
    const ref = firebase.firestore().collection('restaurants').startAt(startAt).limit(itemsPerPage);

    ref.onSnapshot((querySnapshot => {
        const data = querySnapshot.docs.map(doc => doc.data());
        var newArr = [];
        var newDataArray = [];


        for (i = 0; i < data.length; i++) {

            newArr.push(data[i]);
            this.setState({
                All: newArr
            })   
       }
    }))

}

Подробнее:

данные в Firestore являются динамическими, и они будут обновлять всевремя, поэтому мне нужно, чтобы пользователь видел последние «рестораны» впереди, а при прокрутке (смахивании) мне нужно выбрать для ex. Еще 3 после 3 других, которые уже отображаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...