/
dedaMazai
/
reactGoodPattern
Обзор
Документация
Войти
/
dedaMazai
/
reactGoodPattern
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/shared/lib/store/buildSlice.ts
24 строки
720 B
Andrei Chipizubov
fix
23 май 2023, 18:39
23 май 2023, 18:39
36dbff3
Код
Авторство
О чём код?
import { bindActionCreators, createSlice } from '@reduxjs/toolkit'; import { SliceCaseReducers, CreateSliceOptions } from '@reduxjs/toolkit/dist'; import { useDispatch } from 'react-redux'; import { useMemo } from 'react'; export function buildSlice< State, CaseReducers extends SliceCaseReducers<State>, Name extends string = string, >(options: CreateSliceOptions<State, CaseReducers, Name>) { const slice = createSlice(options); const useActions = (): typeof slice.actions => { const dispatch = useDispatch(); // @ts-ignore return useMemo(() => bindActionCreators(slice.actions, dispatch), [dispatch]); }; return { ...slice, useActions, }; }