Bird
Raised Fist0
React Nativemobile~5 mins

Redux selectors in React Native - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a Redux selector?
A Redux selector is a function that extracts specific data from the Redux store state. It helps components get only the data they need.
Click to reveal answer
beginner
Why use selectors instead of accessing state directly in components?
Selectors keep components simple, improve code reuse, and can optimize performance by memoizing data to avoid unnecessary re-renders.
Click to reveal answer
intermediate
What is memoization in the context of Redux selectors?
Memoization means caching the result of a selector so if the input state hasn't changed, the selector returns the cached result, improving performance.
Click to reveal answer
intermediate
How do you create a memoized selector using Reselect?
Use the createSelector function from the Reselect library. It takes input selectors and a result function, returning a memoized selector.
Click to reveal answer
beginner
Give an example of a simple selector function.
Example: const selectUserName = state => state.user.name; This selector returns the user's name from the state.
Click to reveal answer
What does a Redux selector do?
AExtracts specific data from the Redux store state
BDispatches actions to update the store
CCreates the Redux store
DDefines reducers
Which library is commonly used to create memoized selectors?
AReact Router
BRedux Thunk
CReselect
DAxios
Why is memoization useful in selectors?
AIt caches results to avoid recalculating when state hasn't changed
BIt makes the store bigger
CIt dispatches actions faster
DIt changes the state directly
How do selectors help components?
ABy managing network requests
BBy handling user input events
CBy styling the UI
DBy providing only the data components need
What is the input to a selector function?
AAn action object
BThe Redux store state
CA React component
DA reducer function
Explain what a Redux selector is and why it is useful in a React Native app.
Think about how components get data from the store.
You got /5 concepts.
    Describe how memoization works in Redux selectors and its benefits.
    Consider what happens when state does not change.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a Redux selector in a React Native app?
      easy
      A. To create UI components
      B. To extract specific data from the Redux store state
      C. To define the initial state of the store
      D. To dispatch actions to update the store

      Solution

      1. Step 1: Understand Redux store role

        The Redux store holds the entire app state in one place.
      2. Step 2: Role of selectors

        Selectors are functions that pick specific parts of that state for use in components.
      3. Final Answer:

        To extract specific data from the Redux store state -> Option B
      4. Quick Check:

        Selector = extract data [OK]
      Hint: Selectors pick data from state, not change it [OK]
      Common Mistakes:
      • Confusing selectors with action creators
      • Thinking selectors update state
      • Using selectors to create UI components
      2. Which of the following is the correct syntax to define a simple Redux selector function named selectUser that returns state.user?
      easy
      A. const selectUser = () => state.user;
      B. const selectUser = (state) => { state.user }
      C. function selectUser() { return user; }
      D. const selectUser = state => state.user;

      Solution

      1. Step 1: Check function parameter

        A selector receives the whole state as an argument, so it must have state parameter.
      2. Step 2: Check return statement

        The selector returns state.user directly. Arrow function with implicit return is correct.
      3. Final Answer:

        const selectUser = state => state.user; -> Option D
      4. Quick Check:

        Arrow function with state param and return [OK]
      Hint: Selector must take state and return part of it [OK]
      Common Mistakes:
      • Omitting the state parameter
      • Not returning the value properly
      • Using braces without return statement
      3. Given the selector const selectCompletedTodos = state => state.todos.filter(todo => todo.completed); and the state { todos: [{id:1, completed:true}, {id:2, completed:false}, {id:3, completed:true}] }, what will selectCompletedTodos(state) return?
      medium
      A. [{id:1, completed:true}, {id:3, completed:true}]
      B. [{id:2, completed:false}]
      C. []
      D. undefined

      Solution

      1. Step 1: Understand selector logic

        The selector filters todos where completed is true.
      2. Step 2: Apply filter to given state

        Todos with id 1 and 3 have completed:true, so they are included.
      3. Final Answer:

        [{id:1, completed:true}, {id:3, completed:true}] -> Option A
      4. Quick Check:

        Filter completed todos = correct list [OK]
      Hint: Filter returns only items matching condition [OK]
      Common Mistakes:
      • Selecting incomplete todos instead
      • Returning empty array by mistake
      • Confusing filter with map
      4. What is wrong with this selector code?
      const selectUserName = state => { state.user.name }
      medium
      A. It does not return any value explicitly
      B. It uses wrong parameter name
      C. It should dispatch an action instead
      D. It should be a class method

      Solution

      1. Step 1: Check function body

        The function uses braces but no return statement, so it returns undefined.
      2. Step 2: Fix by adding return

        Either remove braces or add return to return state.user.name.
      3. Final Answer:

        It does not return any value explicitly -> Option A
      4. Quick Check:

        Missing return in arrow function with braces [OK]
      Hint: Arrow with braces needs explicit return [OK]
      Common Mistakes:
      • Forgetting return inside braces
      • Confusing selectors with actions
      • Using wrong parameter names
      5. You want to create a memoized selector using reselect to get the count of completed todos from state. Which code correctly implements this?
      hard
      A. import { createSelector } from 'redux'; const selectCompletedCount = createSelector(state => state.todos, todos => todos.length);
      B. const selectCompletedCount = state => state.todos.filter(todo => todo.completed).length;
      C. import { createSelector } from 'reselect'; const selectTodos = state => state.todos; const selectCompletedCount = createSelector( selectTodos, todos => todos.filter(todo => todo.completed).length );
      D. const selectCompletedCount = createSelector(state => state.todos, todos => todos.completed.length);

      Solution

      1. Step 1: Use correct import and createSelector

        The createSelector function is imported from 'reselect' and used properly.
      2. Step 2: Define input selector and output function

        selectTodos gets todos array; output function filters completed and counts them.
      3. Step 3: Check other options for errors

        The plain selector const selectCompletedCount = state => state.todos.filter(todo => todo.completed).length is not memoized; importing createSelector from 'redux' is wrong; todos => todos.completed.length accesses property incorrectly.
      4. Final Answer:

        import { createSelector } from 'reselect'; const selectTodos = state => state.todos; const selectCompletedCount = createSelector(selectTodos, todos => todos.filter(todo => todo.completed).length); -> Option C
      5. Quick Check:

        Use reselect createSelector with input and output functions [OK]
      Hint: Use createSelector from 'reselect' with input and output functions [OK]
      Common Mistakes:
      • Importing createSelector from wrong package
      • Not memoizing selector
      • Incorrectly accessing properties in output function
      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