I'm new to StackOverflow and looking forward to contributing back to the community!
My first question, I am trying to make some squares change color on the screeen, after an onClick event. I'm nearly there, but I keep getting an error when I try to update the state, which then should updates the color. Please could you let me know what I'm doing wrong?
App.js
import React from "react"
import boxes from "./boxes"
import Box from "./Box"
export default function App() {
    const [squares, setSquares] = React.useState(boxes)
    function changeOn() {
        
       console.log(squares)//just checking I'm getting the full object
       setSquares({
        
            id: 1, on: false //this was previously [...prev], on: !squares.on
        })
        
    }
    const squaresElement = squares.map(props => (
    
        <Box key={props.id} on={props.on} onClick={changeOn} />
    ))
    return (
        <main>
        
            {squaresElement}
        </main>
    )
}
Box.js
import React from "react"
export default function Box (props) {
    const styles= props.on ? {backgroundColor: "#222222"} : {backgroundColor: "none"}
    return (
        
    
        <div className="box" style={styles} onClick={props.onClick}></div>
    )
}
Boxes.js
export default [
    {
        id: 1,
        on: true
    },   
    {
        id: 2,
        on: false
    },   
    {
        id: 3,
        on: true
    },   
    {
        id: 4,
        on: true
    },   
    {
        id: 5,
        on: false
    },   
    {
        id: 6,
        on: false
    },   
]
I hope somebody can easily spot what's wrong here?
I was expecting to see the color of the top left box change to a different color, after a click.
 
     
    