在TypeScript和React中封装一个自定义Hook来管理按钮的点击事件、发送请求,并在请求进行时显示加载状态,可以按照以下步骤进行:
首先,定义一个接口(如果需要的话)来描述异步函数的类型,这将作为我们自定义Hook的参数。接着,实现这个Hook并返回相关的状态和方法。
下面是一个简单的示例:
import {
useState, useCallback } from 'react';
// 如果你有特定的请求参数和响应类型,可以在这里定义它们
interface RequestParams {
// 定义请求参数的类型
}
interface ResponseData {
// 定义响应数据的类型
}
// 这是我们自定义Hook的类型签名
function useSubmitWithLoading<T extends RequestParams, R extends ResponseData>(
submitFunction: (params: T) => Promise<R>
) {
const [loading, setLoading] = useState