next.js/test/e2e/app-dir/next-image-events/app/rejected/page.tsx
page.tsx51 lines1.3 KB
'use client'
'use no memo'

import { useReducer, useState } from 'react'
import Image from 'next/image'

export default function Page() {
  const [, setErrorEvent] = useState<unknown>(null)
  const [showClientImage, setShowClientImage] = useState(false)
  const [, rerender] = useReducer((i) => i + 1, 0)

  return (
    <>
      <Image
        alt="foo"
        width={5}
        height={5}
        unoptimized
        src="/will-never-exist.png"
        onError={(event) => {
          console.error('hydrated image error')
          // This doesn't really make sense. We just want to check rerendering
          // doesn't infinitely loop
          setErrorEvent(event)
        }}
      />
      <button type="button" onClick={rerender}>
        rerender Page
      </button>
      <button type="button" onClick={() => setShowClientImage(true)}>
        Show Client image
      </button>
      {showClientImage && (
        <Image
          alt="bar"
          width={5}
          height={5}
          unoptimized
          src="/still-doesnt-exist.png"
          onError={(event) => {
            console.error('client rendered image error')
            // This doesn't really make sense. We just want to check rerendering
            // doesn't infinitely loop
            setErrorEvent(event)
          }}
        />
      )}
    </>
  )
}
Quest for Codev2.0.0
/
SIGN IN