La función js includes está comparando elementos con el operador === y esto no funciona con objetos.
por ejemplo, la siguiente expresión devolverá false :
{id:1} === {id:1}Para resolver su problema, puede usar la función js que verifica si un elemento de la matriz coincide con la condición
Para comparar su objeto, puede escribir su lógica en alguna función o escribir otra función para comparar sus elementos.
Nota : en mi opinión, en su caso, solo puede comparar el identificador de los objetos para verificar si están incluidos en la matriz personNamen
checked={personNamen.some(person => person.name === name.name)} const personNamen = [{ name: "Foo", id: 1 }] const name = { name: "Foo", id: 1 } const name2 = { name: "Bar", id: 2 } const compareObjects = (obj1, obj2) => { return obj1.name === obj2.name && obj1.id === obj2.id } console.log(personNamen.some(person => compareObjects(person, name))) //true console.log(personNamen.some(person => compareObjects(person, name2))) //falseOtra solución sería asignar la matriz al valor del identificador y verificar si la identificación está incluida en la matriz asignada
Ejemplo :
const personNamen = [ {id: 1, name: "Foo"}, {id: 2, name: "Bar"}, ] const reduceArray = personNamen.map(x => x.id) const name1 = {id:1, name: "Foo"} const name2 = {id:3, name: "Baz"} console.log(reduceArray.includes(name1.id)) //true console.log(reduceArray.includes(name2.id)) //false