scrimba
Learn React
Meme generator
Boxes challenge part 5
Go Pro!Bootcamp

Bootcamp

Study group

Collaborate with peers in your dedicated #study-group channel.

Code reviews

Submit projects for review using the /review command in your #code-reviews channel

Boxes challenge part 5
AboutCommentsNotes
Boxes challenge part 5
Expand for more info
App.js
run
preview
console
import React from "react"
import boxes from "./boxes"
import Box from "./Box"

export default function App() {
const [squares, setSquares] = React.useState(boxes)

function toggle(id) {
setSquares(prevSquares => {
const newSquares = []
for(let i = 0; i < prevSquares.length; i++) {
const currentSquare = prevSquares[i]
if(currentSquare.id === id) {
const updatedSquare = {
...currentSquare,
on: !currentSquare.on
}
newSquares.push(updatedSquare)
} else {
newSquares.push(currentSquare)
}
}
return newSquares
})
}

const squareElements = squares.map(square => (
<Box
key={square.id}
id={square.id}
on={square.on}
toggle={toggle}
/>
))

return (
<main>
{squareElements}
</main>
)
}
Console
/index.html
"> "> "> "> ">
-5:57