代码之家  ›  专栏  ›  技术社区  ›  arya.s

Toast错误消息在React/Redux中多次显示。如何避免?

  •  0
  • arya.s  · 技术社区  · 2 年前

    使用RTK查询生成的钩子绑定来自后端的响应,如下所示。

    const { data, error } = useApiQuery();

    生成rtk查询挂钩的代码

    import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";
    
    export interface TestObject {
        //some feilds
    }
    
    export const testApi = createApi({
        reducerPath: "testApi",
        baseQuery: fetchBaseQuery({ baseUrl: "http://localhost:3000/" }),
        tagTypes: ['Test'],
        endpoints: (builder) => ({
            api: builder.query<TestObject[], any>({
                query: () => `/testapi`,
                providesTags: ['Test']
            })
           
        })
    });
    
    export const { useApiQuery } = testApi; 
    

    使用rtk查询响应中的错误对象来显示toast通知,如下所示。

    export const App = () => {
        return (
        <>
            {error && openNotification(error)}
            //some code
        </>
       )
    }
    
    

    公开通知的实施如下。

    import { notification } from 'antd';
    
    export const openNotification = (errorObj: any) => {
      if (errorObj) {
        notification.open({
          message: 'Exception Occured',
          description: errorObj.message,
        });
      }
    };
    

    这里的问题是toast消息被多次显示,因为错误对象不会被清空。我怎样才能避免呢?

    0 回复  |  直到 2 年前