/*
* @Author: WYD
* @Date: 2022-11-11 12:07:36
* @LastEditors: Please set LastEditors
* @LastEditTime: 2022-11-11 14:49:28
* @Description: description
* @FilePath: \src\models\common.ts
*/
import type { DvaModel, Effect, Reducer } from "@umijs/max";
interface state {
types: any[]
}
interface reducers {
saveCommonTypes: Reducer<state>;
}
interface effects {
fetchCommonTypes: Effect;
}
const commonModel: DvaModel<state, effects, reducers> = {
namespace: 'commonModel',
state: {
types: [],
},
effects: {
*fetchCommonTypes({ payload }, { call, put }) {
console.log(payload)
// const response = yield call(api方法名, payload);
// const { status, result } = response;
// console.log(status)
// if (status === 200) {
yield put({ type: 'saveCommonTypes', payload: [222] });
// }
},
},
reducers: {
saveCommonTypes(state: state, action) {
state.types = action.payload;
return state;
},
},
}
export default commonModel;
models中创建文件后直接粘贴进去即可使用。
const dispatch = useDispatch();
const initData = useSelector((state: any) => {
return state.commonModel.types;
});
useEffect(() => {
console.log(dispatch({ type: 'commonModel/fetchCommonTypes', payload: "sadadasda" }))
console.log(initData)
}, [])
页面中使用