How can I achieve such a view like this in react native in a FlatList component?
Usually in web It's easy with css grid but I could not a way to do this in react native.

If you want to render an n by n grid, you could utilize FlatList's numColumns property. Then you could just pass the data into the FlatList's data property to specify how to render each cell in the grid by passing a function in the renderItem property.
A rough example would look like this:
import { FlatList } from "react-native";
<FlatList 
  data={myData}
  numColumns={3}
  renderItem={({ item }) => <MyCellComponent cellData={item} />}
/>
However, your question is a bit different as you want to render an uneven grid. You could divide the grid into two separate components, ComponentA and ComponentB, and render them inside of a ScrollView as such.

A rough code example would look like this:
import { ScrollView } from "react-native";
<ScrollView>
  <ComponentA />
  <ComponentB />
  <ComponentA />
</ScrollView>
Although, if you really want to use a FlatList, then you could create a 3rd component, ComponentC, which would basically wrap the previous example like so:
import { View } from "react-native";
function ComponentC() {
  return (
    <View>
      <ComponentA />
      <ComponentB />
      <ComponentA />
    </View>
  );
}
and then render that inside of a FlatList:
<FlatList 
  data={myData}
  renderItem={({ item }) => (<ComponentC data={item} />)}
/>
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With