一个整合多个reducer的useRedcuer的案例
注意:hooks只能在函数(无状态组件)中使用
npm i redux-custom --save 下载这个小型依赖库
1.redux-custom.tsx 对useCustomRedux进行了优化
import React, {
Context, createContext, useContext, useReducer } from 'react';
/**
* @createContext ProviderContext 一个创建完毕的context
*/
const ProviderContext: Context<any> = createContext('provider');
/** 高阶函数
* @param reducer 传入一个整合或者没有整合的reducer
* @param initialState 传入一个初始化的state,用来当做默认值
*/
export default (reducer: Function, initialState: any) => (Com: React.FC | React.ComponentClass) => {
return () => {
const [state, dispatch] = useReducer<any>(reducer, initialState);
return (
<ProviderContext.Provider value={
{
state