Как я могу получить необязательные свойства объекта, переданные в entityAdapter.getInitialState()?

#javascript #reactjs #redux #redux-toolkit

#javascript #reactjs #сокращение #redux-toolkit

Вопрос:

Я инициализировал состояние entityAdapter и объявил селекторы как

 export const devicesAdapter = createEntityAdapter<Device>({
})

export const initialDevicesState = devicesAdapter.getInitialState({
  listLoading: false,
  actionsLoading: false,
  totalCount: 0,
  groups: [] as Group[],
  deviceForEdit: null as Device,
  error: null,
});

export const {
  selectAll: selectAllDevices,
  selectById: selectDeviceById,
  selectIds: selectDeviceIds,
  selectEntities: selectDeviceEntities,
} = devicesAdapter.getSelectors((state: RootState) => state.devices);

  

Теперь, в действии, созданном с помощью createAsyncThunk, я пытаюсь получить доступ к текущему состоянию групп в моем хранилище как

 const groups=store.getState().devices.groups;
  

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

Есть ли лучший способ доступа к состоянию групп с уровня устройств, например, с помощью селекторов devicesAdapter?

Комментарии:

1. Считаете ли вы, что передача атрибута groups в качестве полезной нагрузки при вызове этого действия creator считается лучшим способом?

Ответ №1:

Очень просто получить состояние хранилища при использовании createAsyncThunk с помощью метода getState() thunkAPI, который является вторым параметром по умолчанию для async payloadCreator