Método .find (): ¿Cómo puedo devolver un valor lógico en lugar de mi objeto finded?

veroneseWithS:

Estoy haciendo una selección múltiple y estoy usando una .find()con la característica sea comprobada para seleccionar el checkboxcuando 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/falseen su lugar? Estoy recibiendo este error debido a que el Checkboxcomponente esperar un booleano

index.js: 1 Advertencia: Error de tipo prop: prop no válido checkedde tipo objectsuministrado para ForwardRef(Checkbox), que se espera boolean.

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!

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=347453&siteId=1
Recomendado
Clasificación