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 *

Home Screencasts Best of Newsletter Search X

📖 50 Javascript, React and NextJs Projects

Hi friend! Before you go, just wanted to let you know about the 50 Javascript, React and NextJs Projects FREE ebook.

One of the best ways to learn is by doing the work. Choose from 8 project categories and get started right away:

  • Business & Real-World
  • Games & Puzzles
  • Fun & Interesting
  • Tools & Libraries
  • Personal & Portfolio
  • Project Add-Ons
  • Productivity
  • Clones

Learn by doing with this FREE ebook! Not sure what to build? Dive in with 50 projects complete with project briefs and wireframes!

Keep building and level up! Get all projects as an ebook right to your inbox!

X