如何解决单击特定列中的字段时,链接到另一个列表不是完整列表,结果仅满足某些条件
我正在使用
"react": "^16.13.1","react-admin": "^3.6.0",
我想做的是,当单击特定列的字段(列表A)时,转到另一个列表B。
例如, 列表A具有列(ProductId,ProductModel,产品版本,有货,无货,废弃)
如果单击“有货”字段,则必须转到按该行的产品ID过滤且状态为“有货”的列表B。
如果单击“缺货”字段,则必须转到按该行的产品ID过滤且状态为“缺货”的列表B。
在“有货”和“无货”中使用参考字段是不合适的。因为没有针对他们的API。
并且我尝试了hitory.push('List B'),但它只显示了List B的完整列表。
我应该怎么办?
解决方法
这实际上记录在react-admin <List>
组件文档的“链接到预过滤列表”(https://marmelab.com/react-admin/List.html#linking-to-a-pre-filtered-list)部分。
由于过滤器值是从URL提取的,因此可以通过设置查询参数链接到预先过滤的列表。
例如,如果您有标签列表,则可以为每个类别显示一个按钮,以链接到由该标签过滤的帖子列表:
import * as React from "react";
import Button from '@material-ui/core/Button';
import { Link } from 'react-router-dom';
import { stringify } from 'query-string';
const LinkToRelatedProducts = ({ record }) => {
const translate = useTranslate();
return record ? (
<Button
color="primary"
component={Link}
to={{
pathname: '/posts',search: stringify({
page: 1,perPage: 25,sort: 'id',order: 'DESC',filter: JSON.stringify({ category_id: record.id }),}),}}
>
All posts with the category {record.name} ;
</Button>
) : null;
};
您可以使用此按钮,例如作为...的孩子。您还可以通过将过滤器值设置为{},使用该技术创建自定义菜单按钮以链接到未过滤的列表。
提示:您必须传递所有查询字符串参数-不仅仅是过滤器。这是react-admin的当前限制。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。