Redux工具包typescript中的PayloadAction类型是一个泛型类型,用于定义Redux中的action。它是一个包含两个字段的对象:type和payload。type字段表示action的类型,payload字段表示携带的数据。
PayloadAction类型的定义如下:
type PayloadAction<Payload, Type extends string = string, Meta = never, Error = never> = {
type: Type;
payload: Payload;
meta?: Meta;
error?: Error;
};
其中,Payload是payload字段的类型,Type是action的类型(默认为字符串类型),Meta和Error是可选字段,用于携带额外的元数据和错误信息。
使用PayloadAction类型可以定义一个带有payload的action,例如:
const increment = createAction<number>('INCREMENT');
const decrement = createAction<number>('DECREMENT');
const initialState = { count: 0 };
const counterReducer = createReducer(initialState, (builder) => {
builder
.addCase(increment, (state, action) => {
state.count += action.payload;
})
.addCase(decrement, (state, action) => {
state.count -= action.payload;
});
});
在上面的示例中,increment和decrement是使用createAction函数创建的action,它们的payload类型都是number。counterReducer是使用createReducer函数创建的reducer,它会根据action的类型来更新state。
推荐的腾讯云相关产品和产品介绍链接地址:
以上是推荐的腾讯云产品,可以根据具体需求选择适合的产品。
领取专属 10元无门槛券
手把手带您无忧上云