-
错误:
Uncaught TypeError: func.apply is not a function
-
原因:参考地址
- 错误代码
export const myFun = () => {
const [countData, setCountData] = useState<CountData>({ value: 0 });
// 1、useEffect不能用async,异步请求在外面写一个function
useEffect(async () => {
// 2、 条件语句写在useEffect里面
if (countData.value > 0) {
return;
}
const { data } = await getCount();
setCountData(data);
if (data.count > 0) {
setCountData({ ...countData, noticeText: `count: ${data.noticeText}` });
}
}, []);
return countData;
};
- 修改后代码
export const myFun = () => {
const [countData, setCountData] = useState<CountData>({ value: 0 });
const handleCount = async () => {
if (countData.value > 0) {
return;
}
const { data } = await getCount();
setCountData(data);
if (data.count > 0) {
setCountData({ ...countData, noticeText: `count: ${data.noticeText}` });
}
};
useEffect(() => {
handleCount();
}, []);
return countData;
};