Image onLoad event in isomorphic/universal react - register event after image is loaded

后端 未结 5 745

In isomorphic rendered page image can be downloaded before main script.js file. So image can be already loaded before react register onLoad

5条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-23 15:04

    This is all a bit tidier with Hooks:

    
    const useImageLoaded = () => {
      const [loaded, setLoaded] = useState(false)
      const ref = useRef()
    
      const onLoad = () => {
        setLoaded(true)
      }
    
      useEffect(() => {
        if (ref.current && ref.current.complete) {
          onLoad()
        }
      })
    
      return [ref, loaded, onLoad]
    }
    
    const SomeComponent = ({ src }) => {
      const [ref, loaded, onLoad] = useImageLoaded()
    
      return (
        
    {loaded &&

    Loaded!

    }
    ) }

提交回复
热议问题