是否有任何方法可以将元素数组传递给FlatList,而无需使用包装程序,以便以后可以使用stickyHeaderIndices={[1]}
来使第二个元素保持粘性?
我的目的是拥有一个非粘性标题和一个粘性工具栏,并将它们传递给组件。
如果我尝试将renderHeader作为函数传递给ListHeaderComponent,例如
renderHeader = () => {
const { toolbar, header } = this.props;
const arr = [header(), toolbar()];
return arr;
};
我得到
Invariant Violation: Invariant Violation: Invariant Violation: Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object.
Check the render method of `VirtualizedList`.
实现该行为的另一种方法是(例如,仅在第二个标头处发粘的列表)?
我尝试的另一种方法是声明一个具有3个孩子的滚动视图:
The non-sticky header
The toolbar
The flatlist itself
同时在ScrollView上设置stickyHeaderIndices={[1]}
。
这样,我得到了所需的视觉滚动行为(即工具栏变得发粘)。但是,使用这种方法时,外部滚动视图和内部平面列表之间的事件发生冲突,因此我也不知道这是否是有效的方法。
答案 0 :(得分:1)
使用带有1个ListHeaderComponent和1个带有粘性标题的节的节列表。我以前已经成功做到了。