Bird
Raised Fist0
React Nativemobile~5 mins

SectionList for grouped data in React Native - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a SectionList in React Native?
SectionList is a component that renders a list with sections, allowing you to group data under headers for better organization and readability.
Click to reveal answer
beginner
How do you define the data structure for a SectionList?
You provide an array of objects, where each object has a title (or key) for the section header and a data array containing the items for that section.
Click to reveal answer
beginner
Which prop is used to render the header for each section in a SectionList?
The renderSectionHeader prop is a function that returns the UI for each section header.
Click to reveal answer
intermediate
Why use SectionList instead of FlatList for grouped data?
SectionList automatically handles grouping and rendering section headers, making it easier to display grouped lists without manually managing headers.
Click to reveal answer
beginner
What is the purpose of the keyExtractor prop in SectionList?
It provides a unique key for each item in the list to help React Native optimize rendering and track items efficiently.
Click to reveal answer
What type of data structure does SectionList expect for its sections prop?
AA single object with keys as section titles
BA simple array of strings
CA flat array of numbers
DAn array of objects with <code>title</code> and <code>data</code> arrays
Which prop renders the items inside each section of a SectionList?
ArenderSectionHeader
BrenderItem
CrenderFooter
DrenderSeparator
What happens if you omit the keyExtractor in a SectionList?
AReact Native will use the index as key, which may cause rendering issues
BThe app will crash immediately
CSection headers won't render
DItems will not display at all
Which of these is a benefit of using SectionList for grouped data?
AAutomatic section headers rendering
BSupports infinite scrolling by default
CBuilt-in search functionality
DAutomatic data sorting
How do you style the section headers in a SectionList?
ABy passing a style object to <code>sections</code>
BUsing the <code>headerStyle</code> prop
CBy customizing the component returned in <code>renderSectionHeader</code>
DSectionList does not support styling headers
Explain how to set up a SectionList to display grouped data with headers.
Think about how you organize a grocery list by categories.
You got /4 concepts.
    Describe the role of keyExtractor in SectionList and why it is important.
    Imagine labeling each item so you can find it quickly.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using SectionList in React Native?
      easy
      A. To display a list of items grouped by sections with headers
      B. To create a grid layout of images
      C. To handle user input forms
      D. To navigate between screens

      Solution

      1. Step 1: Understand SectionList usage

        SectionList is designed to show lists grouped by sections, each with a header and items.
      2. Step 2: Compare options with SectionList purpose

        Options B, C, and D describe other UI or functionality unrelated to grouped lists.
      3. Final Answer:

        To display a list of items grouped by sections with headers -> Option A
      4. Quick Check:

        SectionList = grouped list display [OK]
      Hint: SectionList groups items with headers, unlike FlatList [OK]
      Common Mistakes:
      • Confusing SectionList with FlatList
      • Thinking SectionList is for navigation
      • Assuming SectionList creates grids
      2. Which of the following is the correct way to define the sections prop for a SectionList?
      easy
      A. [{ title: 'Fruits', data: ['Apple', 'Banana'] }, { title: 'Veggies', data: ['Carrot'] }]
      B. ['Fruits', 'Apple', 'Banana', 'Veggies', 'Carrot']
      C. { title: 'Fruits', items: ['Apple', 'Banana'] }
      D. [{ header: 'Fruits', items: ['Apple', 'Banana'] }]

      Solution

      1. Step 1: Recall SectionList sections structure

        Each section is an object with a title and a data array of items.
      2. Step 2: Check options for correct keys and structure

        [{ title: 'Fruits', data: ['Apple', 'Banana'] }, { title: 'Veggies', data: ['Carrot'] }] matches the required format. Options B, C, and D use wrong keys or structure.
      3. Final Answer:

        [{ title: 'Fruits', data: ['Apple', 'Banana'] }, { title: 'Veggies', data: ['Carrot'] }] -> Option A
      4. Quick Check:

        sections = array of {title, data} objects [OK]
      Hint: Sections need title and data keys exactly [OK]
      Common Mistakes:
      • Using wrong keys like 'items' or 'header'
      • Passing a flat array instead of array of objects
      • Confusing data array with section title
      3. Given this code snippet, what will be displayed as section headers?
      const sections = [
        { title: 'A', data: ['Apple', 'Apricot'] },
        { title: 'B', data: ['Banana'] }
      ];
      
      <SectionList
        sections={sections}
        renderItem={({ item }) => <Text>{item}</Text>}
        renderSectionHeader={({ section }) => <Text>{section.title}</Text>}
      />
      medium
      A. No headers will be shown
      B. Apple and Banana as headers
      C. Only A as header, B is ignored
      D. A and B as headers above their items

      Solution

      1. Step 1: Understand renderSectionHeader usage

        The renderSectionHeader renders the title of each section as header.
      2. Step 2: Identify section titles in data

        Sections have titles 'A' and 'B', so these will be shown as headers above their items.
      3. Final Answer:

        A and B as headers above their items -> Option D
      4. Quick Check:

        Section titles = headers [OK]
      Hint: Section headers come from section.title, not items [OK]
      Common Mistakes:
      • Thinking items become headers
      • Assuming only first section shows header
      • Forgetting to use renderSectionHeader
      4. What is wrong with this SectionList usage?
      const sections = [
        { title: 'Numbers', data: 12345 }
      ];
      
      <SectionList
        sections={sections}
        renderItem={({ item }) => <Text>{item}</Text>}
        renderSectionHeader={({ section }) => <Text>{section.title}</Text>}
      />
      medium
      A. The title property must be an array
      B. The data property should be an array, not a number
      C. renderItem should be renderSectionFooter
      D. sections should be a flat array, not array of objects

      Solution

      1. Step 1: Check the type of data property

        The data property must be an array of items, but here it is a number (12345).
      2. Step 2: Understand consequences of wrong data type

        This will cause runtime errors because SectionList expects an array to iterate over.
      3. Final Answer:

        The data property should be an array, not a number -> Option B
      4. Quick Check:

        data must be array [OK]
      Hint: data must always be an array, never a single value [OK]
      Common Mistakes:
      • Passing a single value instead of array to data
      • Confusing title type with data type
      • Using wrong render method names
      5. You want to display a SectionList with sections for weekdays and weekend, but only show days that start with 'S'. How should you prepare the sections data?
      hard
      A. [{ title: 'Weekdays', data: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] }]
      B. [{ title: 'Weekdays', data: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'] }, { title: 'Weekend', data: ['Saturday', 'Sunday'] }]
      C. [{ title: 'Weekdays', data: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'].filter(day => day.startsWith('S')) }, { title: 'Weekend', data: ['Saturday', 'Sunday'].filter(day => day.startsWith('S')) }]
      D. [{ title: 'Days', data: ['Saturday', 'Sunday'] }]

      Solution

      1. Step 1: Filter days starting with 'S' in each group

        Use filter(day => day.startsWith('S')) on weekdays and weekend arrays to keep only days starting with 'S'.
      2. Step 2: Assign filtered arrays to correct section titles

        Weekdays filtered will be empty, weekend filtered will have 'Saturday' and 'Sunday'. This matches the requirement.
      3. Final Answer:

        [{ title: 'Weekdays', data: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'].filter(day => day.startsWith('S')) }, { title: 'Weekend', data: ['Saturday', 'Sunday'].filter(day => day.startsWith('S')) }] -> Option C
      4. Quick Check:

        Filter each section's data by startsWith('S') [OK]
      Hint: Filter each section's data array before passing to SectionList [OK]
      Common Mistakes:
      • Not filtering weekdays, showing all days
      • Combining all days into one section
      • Ignoring filtering and passing raw arrays
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard