react报错Uncaught TypeError: func.apply is not a function

1,048 阅读1分钟
  • 错误:Uncaught TypeError: func.apply is not a function

  • 原因:参考地址

image.png

  • 错误代码
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;
};