Мне нужно вызвать ActionCreator из другого
утки / products.ts - ActionCreator и редукторы продуктов ...
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))
};
Я видел пример который использовал try 2 , но он не работает, а first try ничего не делает,
ducks / 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));
}
};
Я не могу выполнить Dispatch (setStock (producto)) , потому что из машинописи получаю следующее:
Аргумент типа '(рассылка: Dispatch, getState: () => any, {auth, db}: IServices) => Promise 'нельзя назначить параметру типа' AnyAction '.
Свойство 'type' отсутствует в типе '(dispatch: Dispatch, getState: () => any, {auth, db}: IServices) => Promise', но требуется для типа 'AnyAction'