无法在 try 块中调用 toast

Can't call toast in try block

提问人:Learn to Code 提问时间:11/16/2023 更新时间:11/16/2023 访问量:19

问:

我无法让 toast 函数在此 try 块中调用。Toast 非常适合错误部分。不知道为什么

我试过了

if (data) {
dispatch(setProducts(data));
      dispatch(setProductUpdateFlag());
      dispatch(resetError());
      toast({
        description: "Product Deleted",
        status: "error",
        isClosable: true,
      });
}

但这也没有用。不知道为什么。 这就是我要问的,但由于除非我写更多东西,否则 SO 不会让我发布,所以这一行只是额外的填充文本

export const deleteProduct = (id, toast) => async (dispatch, getState) => {
  const {
    user: { userInfo },
  } = getState();

  try {
    const config = {
      headers: {
        Authorization: `Bearer ${userInfo.token}`,
        "Content-Type": "application/json",
      },
    };
    const { data } = await axios.delete(`api/products/${id}`, config);
      dispatch(setProducts(data));
      dispatch(setProductUpdateFlag());
      dispatch(resetError());
      toast({
        description: "Product Deleted",
        status: "error",
        isClosable: true,
      });
  } catch (error) {
    dispatch(
      setError(
        error.response && error.response.data.message
          ? error.response.data.message
          : error.message
          ? error.message
          : "Product could not be deleted"
      )
    );
    toast({
      description: "Sorry, delete failed",
      status: "error",
      isClosable: true,
    });
  }
};

try-catch 吐司

评论

0赞 David 11/16/2023
请不要添加“额外的填充文本”,而是花一些时间来实际澄清您要描述的问题。该函数有什么作用?(我认为这是一种显示“toast”通知的机制,但如何显示呢?是你写的吗?第三方的东西?调试时,是否调用了该函数?它是否被调用,但它产生的任何副作用都被其他东西抵消了?浏览器的开发控制台是否有任何错误?您能否提供一个可运行的最小可重现示例来演示该问题?toast
0赞 Learn to Code 11/16/2023
它是一个脉轮 ui 组件 const toast =useToast()

答: 暂无答案