FlatList标头中包含多个元素

时间:2018-08-05 08:09:23

标签: react-native react-native-flatlist

是否有任何方法可以将元素数组传递给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]}

这样,我得到了所需的视觉滚动行为(即工具栏变得发粘)。但是,使用这种方法时,外部滚动视图和内部平面列表之间的事件发生冲突,因此我也不知道这是否是有效的方法。

1 个答案:

答案 0 :(得分:1)

使用带有1个ListHeaderComponent和1个带有粘性标题的节的节列表。我以前已经成功做到了。