此问题与react-admin及其相关组件有关
如何从列表组件的过滤器属性中排除ID?下面的代码将给我列出ID为1,3和5的记录。我想做相反的事情,并将它们从列表中排除。
如果没有简单的方法,如何获取资源中记录的ID数组?预先感谢!
<List {...props} filter={{ id : [1,3,5] }} >
<Datagrid>
<TextField source="id" />
<TextField source="title" />
<TextField source="body" />
</Datagrid>
</List>
答案 0 :(得分:0)
假设您在您的状态下具有以下ID,
state = {
allID: [1,2,3,4,5,6,7,8 ... n],
};
现在假设您要显示除id为3,5, 7
以外的所有内容,您可以执行以下操作
render() {
const { allID } = this.state;
const IdToExclude = [3,5,7];
const filteredID = allID.filter(id => {
return !IdToExclude.includes(id)
});
return (
<List {...props} filter={{ id : filteredID }} >
<Datagrid>
<TextField source="id" />
<TextField source="title" />
<TextField source="body" />
</Datagrid>
</List>
);
}
现在我正在使用Array.includes从您的ID列表中排除更多信息。 MDN Array Includes