任何人都知道为什么我在尝试设置加载状态时不断收到此错误

AnyOne know why i keep getting This error when i try to set state on load

我一直收到此错误我正在尝试显示 none 图像直到它加载,但我收到 React Limits the number of renders to prevent infinite loop。如果您知道更好的方法,请告诉我。我希望图像在加载时不显示...正在加载图像非常丑陋,它只发生在使用 .Png 文件的 Mobile Im 上,我应该转换为 svg 以便加载更快吗?

        Too many re-renders. React limits the number of renders to prevent an infinite loop.
        ▶ 2 stack frames were collapsed.
        Spinner
        C:/Users/Test/Documents/GitHub/Ecommerce-Store/src/components/Spinner.jsx:26
        23 | return (
        24 |   <div style={{ height: '100vh' }}>
        25 |     <img
        > 26 |       onLoad={setloaded('true')}
            | ^  27 |       id="preloader"
        28 |       src={preloader}
        29 |       alt="loading..."

        import React, { useEffect, useState } from 'react';
        import { isAndroid, isIOS } from 'react-device-detect';
        import android from '../spinners/androidlogo.png';
        import apple from '../spinners/Applelogo.png';
        import spinner from '../spinners/VHUBLogospin.gif';

        const Spinner = props => {
        const [preloader, setpreloader] = useState(null);
        const [loaded, setloaded] = useState(false)
        // const productConsumer = useContext(ProductContext);
        // // const { showSpinner } = productConsumer;
        useEffect(() => {
            if (isIOS) {
            setpreloader(apple);
            } else if (isAndroid) {
            setpreloader(android);
            } else {
            setpreloader(spinner);
            }
            // showSpinner(preloader);
        }, []);

        return (
            <div style={{ height: '100vh' }}>
            <img
                onLoad={setloaded('true')}
                id="preloader"
                src={preloader}
                alt="loading..."
                style={{
                width: '200px',
                margin: 'auto',
                display: 'block',
                marginTop: '3%',
                paddingTop: '25vh',

                }}
                className={!loaded ? 'display-none' : '' }
            />
            </div>
        );
        };

        export default Spinner;

试试这个 onLoad={() => {setloaded('true')}}