我做了多个选择和我使用的是.find()
与检查属性选择checkbox
当值在两个数组。
这是我的名单排列:
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
。
您可以验证它是否返回一个值!!
。
例如使用如下所示:
<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
我希望这有帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句