【问题标题】:Reactjs callback get error before error is returnedReactjs回调在返回错误之前获取错误
【发布时间】:2020-12-04 04:18:15
【问题描述】:

您好,我是 react 初学者,我有以下代码

import { useCallback } from 'react';
import { useMutation } from '@apollo/client';

import { useCartContext } from '@magento/peregrine/lib/context/cart';


export const useWishlistAllItems = props => {
    const { items,mutations } = props;
    const { addSimpleWishListItemToCartMutation } = mutations;

    const [{ cartId }] = useCartContext();
 

    const [addWishlistItemToCart, { error, loading }] = useMutation(addSimpleWishListItemToCartMutation);


    const handleAddAllItemsToCart = useCallback(async () => {
        try {
            items.map((item,index) => {
                if (item.product.__typename !== 'ConfigurableProduct'){
                    const cartItem = {
                        data: {
                            quantity: 1,
                            sku: item.product.sku
                        }
                    };
                    addWishlistItemToCart({
                        variables: {
                            cartId,
                            cartItem
                        }
                    });
                }
            })

        } catch {
            return;
        }
    }, [addWishlistItemToCart, cartId, items]);

    const saveWishList = useCallback(async () => {
        try {
            window.location.reload(false);
        }catch {
            return;
        }
    }, []);



    return {
        handleAddAllItemsToCart,
        saveWishList,
        hasError: !!error,
        isLoading: loading
    };
};

问题是在错误返回到我的主要组件之前显示错误。我得到以下内容

我已经正确处理了我的组件中返回的错误,但问题是我在返回到组件之前得到了如上的错误。我认为这是因为回调函数。请给我一个解决方案。

【问题讨论】:

    标签: javascript reactjs error-handling callback


    【解决方案1】:

    在没有等待的情况下运行异步方法就像在没有等待的情况下启动 Task 监测它的进展和结果。 因此,再次使用 await 检查您的代码并返回相应的输出。

    【讨论】:

    • 我应该在哪里使用 await。我在 items.map((item,index) => 的开头使用它但得到相同的结果
    猜你喜欢
    • 1970-01-01
    • 2021-03-26
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    • 2018-03-08
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多