State

Let's do a little bit more with the button. Let's make it count clicks.

count clicks

Naive implementation

const Clicker: React.FC = () => {
    let clicks = 0;
    const handleButtonClick = () => {
        clicks++;
    }

    return (
        <button onClick={handleButtonClick}>Clicked { clicks } times</button>
    )
}

Edit bad clicker

Boom, done. Except is doesn't work, because React has no idea that it should rerender the Clicker component or keep track of the clicks variable.

Using the useState hook

Current Industry Best Practice ™ for keeping track of the state. Previously, we would use class components, but hooks have some advantages over them.

import React, { useState } from "react"

const Clicker: React.FC = () => {
    const [clicks, setClicks] = useState<number>(0)
    const handleButtonClick = () => {
        setClicks(clicks + 1)
    }

    return (
        <button onClick={handleButtonClick}>Clicked { clicks } times</button>
    )
}

Edit working clicker

Resources

results matching ""

    No results matching ""