React Native - как визуализировать динамический список с помощью карты

У меня есть список элементов, которые я хочу визуализировать. Когда пользователь доходит до конца списка, он загружает больше элементов. Проблема в том, что страница является ScrollView, поэтому я не могу использовать FlatList для ее визуализации (вы не можете использовать ScrollView внутри ScrollView). Сейчас я использую для этого карту.

ItemsList.js:

export const ItemsList = (props) => {
    const { type, isEndReached } = props;
    const [items, setItems] = useState([]);
    const [page, setPage] = useState(1);

    useEffect(() => {
        if (!items.length || page > 1) {
           getItemsList(type);
        }
    }, [page, type]);

    useEffect(() => {
        if (isEndReached && isLoadMore) {
            setPage(page + 1);
        }
    }, [isEndReached]);

    const getItemsList = async (type) => {
        const loadedItems = await ItemService.getItems(page, type);
        setItems(_.concat(items, loadedItems));
    };

    const renderItem = (item, idx) => {
        return (
            <Item
                key={item.id}
            />
        )
    }

    const RenderList = () => {
        return items.length ? items.map((item, idx) => renderItem(item, idx)) : null;
    };

    render (
        <View>
            <RenderList/>
        </View>
    )
}

Компонент ItemsList находится внутри страницы ScrollView.

Когда я загружаю больше результатов, я объединяю массив элементов из состояния с новым массивом с сервера и устанавливаю новый массив как список элементов. Это заставит снова отобразить весь список (даже если у каждого элемента другой идентификатор).

Как сделать список, чтобы отображались только дополнительные элементы, а не весь список?

Спасибо!


person maya dahan    schedule 03.12.2019    source источник
comment
Что вы имеете в виду под отображением только дополнительных элементов, а не всего списка? Можете ли вы предоставить списки данных из вашего кода, и что вы имеете в виду? Вы имеете в виду, что хотите загружать только новые элементы из ItemService?   -  person Amir5000    schedule 03.12.2019
comment
У меня на сервере тысячи записей, я каждый раз приношу на клиентскую сторону 10 записей (элементов). когда пользователь доходит до конца списка, номер страницы увеличивается на 1, и я получаю следующие 10 новых элементов. Затем я обновляю состояние элементов новыми элементами. (Всего 20 наименований - например)   -  person maya dahan    schedule 03.12.2019