Me encuentro desarrollando una aplicación con react.js, pero no marca el error TypeError: checkBoxes.map is not a function. Aquí el código.
import Button from "./components/Button";
import Checkbox from "./components/Checkbox";
import {useState} from "react";
const Form = () => {
const [checkBoxes,setCheckBoxes] = useState([
{id:1, value: "Edicon de video", isChecked: false},
{id:2, value: "Ofimatica", isChecked:false},
{id:3, value: "Diseño grafico", isChecked: false},
{id:4, value: "Inteligencia artificial", isChecked: false},
{id:5, value: "Modelado 3D", isChecked: false},
{id:6, value: "Videojuegos", isChecked: false}
]);
const checkBoxHandler = (id) =>{
let checkBox = checkBoxes; let checkAux;
checkBox.map(check => {
if(check.id===id) checkAux = {...checkBox, isChecked: !check.isChecked}
else check.isChecked = false;
});
setCheckBoxes(checkAux);
}
return (
<div className="form">
<form className="info-form">
<div className="form-control">
<label>¿Trabajo al que va enfocado el equipo?</label>
<div className="form-control form-control-check">
<dl>
{checkBoxes.map((check,index) =>{
return (<Checkbox id={index} value={check.value} checked={check.isChecked} onClick={checkBoxHandler} />);
})}
</dl>
</div>
</div>
<div className="form-control">
<label>Presupuesto</label>
<input type="number" placeholder="$ Margen minimo"/>
<input type="number" placeholder="$ Margen maximo"/>
</div>
<div className="form-control">
<label>¿Que marca de procesador prefieres?</label>
<p align="center"><img src="/images/Intel.png"/><img src="/images/Amd.png"/></p>
</div>
<Button to="/Application" text="A darle"> A darle </Button>
</form>
</div>
);
}
export default Form;
Codigo del componente CheckBox:
import PropTypes from "prop-types";
const Checkbox = ({id,value, onClick, checked}) => {
return (
<dt>
<div className="form-control-check-alignment">
<p> {value} </p><input key={id} checked={checked} value={value} type="radio" onClick={onClick(id)} />
</div>
</dt>
)
}
export default Checkbox;
Sigo estudiando tanto react.js como javascript, pero realmente me cuesta encontrar el origen de este error. Gracias