JS Built-ins
redux-toolkitcreateEntityAdapterintermediate

createEntityAdapter

πŸ“– Usage Example
const { createEntityAdapter, createSlice } = ReduxToolkit
const adapter = createEntityAdapter()
const slice = createSlice({
  name: 'items',
  initialState: adapter.getInitialState(),
  reducers: { addItem: adapter.addOne },
})

createEntityAdapter provides pre-built CRUD reducers and normalizes entities into an ids array and entities map.

createEntityAdapter

createEntityAdapter() manages normalized state with an ids array and an entities map. It provides pre-built CRUD reducers like addOne, removeOne, updateOne, etc.

Challenge: Create a todos slice using the adapter's addOne and removeOne reducers.

// After adding { id: 1, text: 'buy milk' }:
state.ids     // β†’ [1]
state.entities[1].text // β†’ 'buy milk'
πŸ’‘ Hints (3)
  • β€’ `todosAdapter.getInitialState()` returns `{ ids: [], entities: {} }`.
  • β€’ Assign adapter methods directly as reducers: `addTodo: todosAdapter.addOne`.
  • β€’ Entities are keyed by their `id` field in the `entities` map.