šŸŽ Checkout my Learn React by Making a Game course and get 1 month Free on Skillshare!

Fixing the Error: Event handlers cannot be passed to Client Component props in NextJs

Let's say we have the this NextJs code:

// ā›”ļø this will throw an error
export default function Home() {
  return (
    <button onClick={() => alert('hi')}>
      Say hi šŸ‘‹!!!
    </button>
  )
} 

The above page will throw this error:

Error: Event handlers cannot be passed to Client Component props.
 <button onClick={function} children=...>
         ^^^^^^^^^^
If you need interactivity, consider converting part of this to a Client Component.

The reason why this error happens is that we are trying to use a UI event handler in a non-client component.

Therefore we will need to mark the NextJs component with the use client directive:

// āœ… add the use client directive for UI event handlers
"use client"

export default function Home() {
  return (
    <button onClick={() => alert('hi')}>
      Say hi šŸ‘‹!!!
    </button>
  )
}

Fixing the Event handlers cannot be passed to Client Component props. NextJs Error

The full code for this tiny example is here.

šŸ“– 50 Javascript, React and NextJs Projects

Learn by doing with this FREE ebook! Not sure what to build? Dive in with 50 projects with project briefs and wireframes! Choose from 8 project categories and get started right away.

šŸ“– 50 Javascript, React and NextJs Projects

Learn by doing with this FREE ebook! Not sure what to build? Dive in with 50 projects with project briefs and wireframes! Choose from 8 project categories and get started right away.


Leave a Reply

Your email address will not be published. Required fields are marked *