gpt4 book ai didi

reactjs - 从另一个 ActionCreator 调用 ActionCreator

转载 作者:行者123 更新时间:2023-12-04 10:06:34 25 4
gpt4 key购买 nike

我需要从另一个调用 ActionCreator

鸭子/products.ts - 产品的 ActionCreator 和 Reducers...

import { setStock } from './Store.ts';
//....
export const addProduct = (product: IProduct) => async (
dispatch: Dispatch,
getState: () => IState,
{ auth }: IServices
) => {
dispatch(fetchStart());

const response = await Axios.post('/api/products', product)

const producto = response.data as IDataProduct

// # I need to call SetStock()
// # [Try 1] to Call
setStock(producto)

// # [Try 2] to Call
// return (dispatch2: any) => {
// dispatch2(
//setStock(producto._id)
// )
// }

dispatch(fetchSucess(producto))
};

我看到一个使用 的例子尝试 2 ,但它不起作用,还有 第一次尝试 什么也没做,

鸭子/stores.ts
export const setStock = (product: any) => async (
dispatch: Dispatch,
getState: () => any,
{ auth, db }: IServices
) => {
console.log('INIT SETSTOCKACTIONCREATOR....')
dispatch(fetchStart());
try {
const ref = db.collection("stores").doc(storeId);
await ref.update({ [product._id]: product.newStock });

dispatch(updateSucess({ _id: storeId, stock: product.newStock, productId: product.productId }));

} catch (error) {
dispatch(fetchError(error));
}
};

我做不到 调度(setStock(producto)) 因为我从 typescript 中得到以下内容:

'(dispatch: Dispatch, getState: () => any, { auth, db }: IServices) => Promise' 类型的参数不可分配给 'AnyAction' 类型的参数。

类型 '(dispatch: Dispatch, getState: () => any, { auth, db }: IServices) => Promise' 中缺少属性 'type' 但在类型 'AnyAction' 中是必需的

最佳答案

你只需要像 dispatch(setStock(producto._id)) 一样调度 setStock Action 这与您为 fetchStart 所做的类似

export const addProduct = (product: IProduct) => async (
dispatch: ThunkAction<Promise<void>, {}, {}, AnyAction>,
getState: () => IState,
{ auth }: IServices
) => {
dispatch(fetchStart());

const response = await Axios.post('/api/products', product)

const producto = response.data as IDataProduct

dispatch(setStock(producto._id))


dispatch(fetchSucess(producto))
};

关于reactjs - 从另一个 ActionCreator 调用 ActionCreator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61557293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com