Прокрутка FlatList со статическим компонентом - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть один статический компонент и много для компонентов, отображаемых в цикле на экране.

Весь код ниже.

import React from "react";
import { View, Text, FlatList } from "react-native";
...

class FlatListScrollWithStatic extends React.Component {
  render() {
    return (
      <View style={{ flex: 1 }}>
        <FriendsTop />  // the static component
        <FlatList
          style={{ flex: 1 }}
          data={this.props.friendsCard}
          renderItem={({ item }) => <FriendsCard {...item} />}  // the for loop rendered components
          keyExtractor={(item, index) => index.toString()}
        />
      </View>
    );
  }
}

Теперь я хочу перенести FriendsTop в Flatlist,прокручивать визуализированные компоненты, как мне изменить мой код?

Ответы [ 3 ]

0 голосов
/ 19 декабря 2018

Flatlist имеет реквизит ListHeaderComponent, который принимает элемент JSX.Итак:

import React from "react";
import { View, Text, FlatList } from "react-native";
...

class FlatListScrollWithStatic extends React.Component {
  render() {
    return (
      <View style={{ flex: 1 }}>

        <FlatList
          style={{ flex: 1 }}
          data={this.props.friendsCard}
          renderItem={({ item }) => <FriendsCard {...item} />}  // the for loop rendered components
          keyExtractor={(item, index) => index.toString()}
          ListHeaderComponent={<FriendsTop />}
        />
      </View>
    );
  }
}
0 голосов
/ 19 декабря 2018

я думаю, что есть два способа сделать это сначала, используя первый, используя компонент заголовка flatlist

, но я думаю, что если вам нужны статические данные с данными, которые вы получаете из fetch, вы должны объединить их

 <FlatList
   inverted
      data={this.state.data.concat({
        "id":1,
        "user_id": 1,
        "title": "all",
        "similar_title": null,
        "description": null,
        "font_icon": null,
        "default_distance": 8,
        "visible": "yes",
        "priority": "no",
        "image": null,
        "created_at": null,
        "updated_at": "2018-06-14 22:13:58"
    })}

      numColumns={4}


      renderItem={({item}) =>

в этом коде я добавляю статическую кнопку all с concat image

0 голосов
/ 19 декабря 2018

Это может работать для вас:

import React, { Fragment } from "react";

...

<FlatList
  style={{ flex: 1 }}
  data={this.props.friendsCard}
  renderItem={({ item }, index) => (
    <Fragment>
      { !index && <FriendsTop /> } // Render when !index is truthy (i.e. index === 0)
      <FriendsCard {...item} />
    </Fragment>
  )}
  keyExtractor={(item, index) => index.toString()}
/>
...