0

我正在尝试使用 RecyclerListView 实现带有过滤器的基本列表。但是一旦键入一些文本并且滚动不在顶部,它就会抛出异常 No layout available for index.

看这个小吃https://snack.expo.io/SJY6NU00B

复制说明:

  1. 滚动到底部
  2. 在 TextInput 中输入字母“A”

结果 :

没有可用于索引的布局:233 LayoutUnavailableException:没有可用于索引的布局:233 at new e (module://recyclerlistview.js:3:1527) at e.getOffsetForIndex (module://recyclerlistview.js:3:5917) at t.refreshWithAnchor (module://recyclerlistview.js:3:26794) 在 e._checkAndChangeLayouts (module://recyclerlistview.js:3:16117) 在 e.componentWillReceiveProps (module://recyclerlistview.js:3:11983)在 Hi ([snack internals] at ha ([snack internals] at Js ([snack internals] at js ([snack internals] at Ps ( https://s3.us-west-1.amazonaws.com/snack-web -player/36/static/js/2.d51b9d02.chunk.js:1:1086639 )

我做错了吗?

4

1 回答 1

2

在包本身中,我做了以下事情:

注释掉抛出异常的行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

于 2020-02-11T09:05:37.027 回答