Данные фильтра для RecyclerListView

Я пытаюсь реализовать базовый список с помощью фильтра с помощью RecyclerListView. Но как только наберете какой-нибудь текст и прокрутка окажется не наверху, выдается исключение. Макет недоступен для индекса.

Смотрите в этой закуске https://snack.expo.io/SJY6NU00B

Инструкции по воспроизведению:

  1. Прокрутите вниз
  2. Введите букву A в поле TextInput.

Результат:

Нет макета для индекса: 233 LayoutUnavailableException: нет макета для индекса: 233 в новом e (module://recyclerlistview.js:3:1527) в e.getOffsetForIndex (module://recyclerlistview.js:3:5917) в t.refreshWithAnchor (модуль://recyclerlistview.js:3:26794) в e._checkAndChangeLayouts (модуль://recyclerlistview.js:3:16117) в e.componentWillReceiveProps (модуль://recyclerlistview.js:3:11983) at Hi ([внутреннее устройство снеков] at ha ([внутреннее устройство снеков] в Js ([внутреннее устройство снеков] в js ([внутреннее устройство снеков]] в Ps (https://s3.us-west-1.amazonaws.com/snack-web-player/36/static/js/2.d51b9d02.chunk.js:1:1086639)

Я делаю это неправильно?

1 ответ

Решение

В самом пакете я сделал следующее:

Закомментировал строки, в которых возникает исключение в LayoutManager.js lines: 64-67

Вместо этого просто поставьте return { x: 0, y: 0};

WrapGridLayoutManager.prototype.getOffsetForIndex = function (index) {
    if (this._layouts.length > index) {
        return { x: this._layouts[index].x, y: this._layouts[index].y };
    }
    else {
        return { x: 0, y: 0};
        // Commented the part that throws exception
        // throw new CustomError_1.default({
        //     message: "No layout available for index: " + index,
        //     type: "LayoutUnavailableException",
        // });
    }
};

Я открыл проблему, но она все еще не решена https://github.com/Flipkart/recyclerlistview/issues/446

Другие вопросы по тегам