我编写了一个自定义钩子来帮助我不为某些 fetch 调用重复代码。它看起来像这样:
export const useCustomQuery = ({ endpoint, body, dataPoint }: args) => {
const [data, setData] = useState()
useEffect(() => {
fetch(`http://localhost:4000/${endpoint}`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body,
})
.then((res) => res.json())
.then((res) => {
if (dataPoint) {
setData(JSON.parse(res.data[dataPoint]))
}
})
}, [endpoint, body, dataPoint])
return { data }
}
但我收到一些抱怨数据类型的 TS 错误。是否可以将类型作为参数传递,因为每个调用钩子的组件可能不同?或者解决这个问题的最佳方法是什么?