veroneseWithS:
Estoy haciendo una selección múltiple y estoy usando una .find()
con la característica sea comprobada para seleccionar el checkbox
cuando el valor está en las dos matrices.
Esta es mi lista de arreglo:
const permissionsGroupList = [
{ name: 'Seller' },
{ name: 'Admins' }
];
const [groupPermissions, setGroupPermissions] = useState([]);
<Select
labelId="mult-check-permissions"
id="demo-mutiple-checkbox"
multiple
label="Grupo de permissões"
onChange={handleChangeGroupPermissions}
value={groupPermissions}
input={<Input disableUnderline={true} />}
renderValue={selected => selected.join(", ")}
>
{permissionsGroupList.map(permissionGroup => (
<MenuItem key={permissionGroup.name} value={{ name: permissionGroup.name }}>
<Checkbox
checked={groupPermissions.find(
group => group.name === permissionGroup.name
)}
/>
<ListItemText primary={permissionGroup.name} />
</MenuItem>
))}
</Select>;
En mi método .find()
devuelve el objeto que se encuentra, cómo puedo volver true/false
en su lugar? Estoy recibiendo este error debido a que el Checkbox
componente esperar un booleano
index.js: 1 Advertencia: Error de tipo prop: prop no válido
checked
de tipoobject
suministrado paraForwardRef(Checkbox)
, que se esperaboolean
.
norbitrial:
Puede validar si se devuelve un valor con !!
.
Por ejemplo, usando como la siguiente:
<Checkbox checked={!!groupPermissions.find(
group => group.name === permissionGroup.name
)}
/>
Piense en lo siguiente:
const data = [1,2,3];
const result1 = !!data.find(e => e === 17);
const result2 = !!data.find(e => e === 2);
console.log(result1); // not found
console.log(result2); // found
¡Espero que esto ayude!