.find()メソッド:どのように私の代わりに私のfindedオブジェクトをboolean型を返すことができますか?

veroneseWithS:

私は、複数の選択やっていると私は使用しています.find()選択することがcheckedプロパティを持つのcheckbox値が2列にあるとき。

これは私のリストの配列であります:

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>;

私の方法では.find()、私が返すことができるか、検出されたオブジェクトを返すtrue/false代わりに?ので、私はこのエラーを受けていますCheckboxコンポーネントはブール値を期待します

index.js:1警告:失敗した小道具の種類:無効な小道具checkedタイプのobjectに供給されForwardRef(Checkbox)、期待されますboolean

norbitrial:

それが持つ値を返した場合は、検証することができます!!

たとえば、以下のように使用します:

<Checkbox checked={!!groupPermissions.find(
                     group => group.name === permissionGroup.name
                  )}
/>

以下について考えてみよう:

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

私はこのことができます願っています!

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=347425&siteId=1