- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们已经基于 React Admin 构建了一个管理 UI,在一些情况下,为了方便起见,我们希望在一个屏幕上使用多个列表。例如。在用户详细信息 View 中,我们想要显示用户存档的多个地址,以及用户的购买记录。用户、地址和购买都是 RA 术语中的“资源”。
大致是这样的:
/* file <...>/resources/users/UserShow.js */
import AddressList from '../addresses/AddressList';
import PurchaseList from '../purchases/PurchaseList';
const UserShow = ({ id, classes, translate, ...props }) => (
<Fragment>
<Show id={id} {...props}>
...render user details here...
</Show>
<AddressList {...props} basePath={'/addresses'} resource={'addresses'} filter={{ userId: id }} />
<PurchaseList {...props} basePath={'/purchases'} resource={'purchases'} filter={{ userId: id }} />
</Fragment>
);
它的大部分功能似乎运行良好,但过滤器让我们有些头疼。它周围的一切似乎都是一次只为一个过滤器构建的,没有任何自定义方法(例如,指定一个属性用于 redux 和 react-router 存储中的过滤器,而不是使用硬编码)
有没有人在同一个屏幕上制作过两个可过滤列表,并且有更多的建议?
最佳答案
我最终想出了一个我想分享的解决方法。
问题是 RA 将过滤器/页面/排序值传播到查询中,并维护过滤器对象的“签名”(相应 JSON 的字符串表示)以检测当前过滤器的变化,以防万一网址更改。通过这种方法,过滤器和分页值在用户来回导航时保持事件状态,并且仅在实际字段值发生变化时才会更新。
如果每个屏幕都有一个列表,那是一件好事,但在我们的例子中,一个列表的过滤器更新会导致将值反向传播到屏幕上的每个其他列表中。
首先,我尝试通过修改查询来保留所有过滤器,以便每个过滤器都使用它们的资源名称作为键。不幸的是,这导致了大量更改,包括由于修补 RA 内部结构而复制整个 RA 组件。
注意:RA 已经在其 Redux 存储中保留了每个资源的过滤器值,所以我不明白为什么他们没有对查询使用类似的语法/方法。
另一种选择是完全切断对查询的传播。权衡是您不能为特定搜索添加书签,并且您需要在导航时重新激活过滤器,但这似乎是一个可以接受的小缺点。
这是 RA 3 中更新查询的相关代码:https://github.com/marmelab/react-admin/blob/master/packages/ra-core/src/controller/useListParams.ts#L164
history.push({
search: `?${stringify({
...newParams,
filter: JSON.stringify(newParams.filter),
displayedFilters: JSON.stringify(newParams.displayedFilters),
})}`,
});
没有办法直接修改此行为,但我们可以向 RA 提供我们自己的历史实现并覆盖搜索参数。相应的猴子补丁看起来像这样:
const history = createBrowserHistory({
basename: process.env.PUBLIC_URL
});
const oldPush = history.push;
history.push = state => {
oldPush({
...state,
search: null,
});
};
然后可以这样使用:
const App = () => (
<Admin
history={history}
...
>
...
</Admin>
);
关于reactjs - 一个屏幕上带有过滤器的多个 React Admin 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58348659/
我只是希望我所有的管理页面都在 /admin 下. 我的主页在 /admin但是当我单击侧栏中的用户时,它会将路径更改为 /users而不是 /admin/users . 我正在使用 rea
我在端口 8011 上设置了一个 Django 服务器,并在端口 80 上有一个 nginx 作为子目录服务。 静态文件,不错。 页面,很好。 但是当我访问/subdirectory/admin/时,
我正在尝试使用 Flask 和 Flask-SuperAdmin 自定义我的 Admin View ,但是,索引 View 和 subview 显然没有使用相同的 is_accessible 方法:
我正在尝试配置我的 .htaccess,以便当有人导航到路径 /wp-admin/admin.php?page=something 时,路径 /wp-admin/something显示在浏览器中,内容
有没有办法整体禁用分页?我希望我的所有记录都显示在一个长列表中,而不是分成几页。我现在正在使用 ListGuesser,我已经尝试过 List 和 ListGuesser,但我无法禁用分页。实际上 r
在本地部署时,我的 RA 项目呈现良好,但是,当我将构建目录复制到 S3 存储桶进行部署时,它呈现的一切都一团糟。有时它有效,但大多数时候它呈现如下图所示。它在带有 AOR 的两种环境中都能正常工作。
我试图在 Datagrid 中显示Field这是多对多关系(中间表)。 我有这些表: 组 - group_subject - 主题 一个小组可以有多个科目 一个主题可以连接多个群组 group_sub
在用于显示用户列表的 Django 管理屏幕中(带有标题,选择要更改的用户),有用户名/电子邮件等字段和员工状态。我想将用户的事件状态添加到该显示中。 尽管大多数 django-admin 自定义问题
无论如何要检查所有 firebase 事务是否在 firebase-admin nodejs 脚本中完成,并正确断开与 firebase 的连接并退出 nodejs 脚本? 目前,即使在所有事务完成后
我正在尝试使用 react-admin 将数据发送到我的自定义 API。我想发送文件,我可以看到有,我想将该数据作为多部分表单数据发送。我遇到过the base64 encoding help pag
我正在尝试在admin部分中实现带有子表单的表单。 form = Fighter() subform = FighterFightHistory() //All of his fights 我的问题如
我在编辑表单中获取记录的“更新”值时遇到了很大的麻烦。我总是得到初始记录值,即使我有一个链接到正确记录源的输入,它应该更新它。 有没有其他方法来获取 SimpleForm 的值? 我有一个简单的编辑表
开发一个不需要翻译的管理员。有没有办法完全关闭它们。就像现在一样,对于诸如通知之类的事情,它们会显示,但我也会收到有关缺少翻译键的控制台警告。 最佳答案 除了 Frederik 的回答之外,以下是禁用
开发一个不需要翻译的管理员。有没有办法完全关闭它们。就像现在一样,对于诸如通知之类的事情,它们会显示,但我也会收到有关缺少翻译键的控制台警告。 最佳答案 除了 Frederik 的回答之外,以下是禁用
我有这样的模型: class User(db.Model): __tablename__ = 'users' __table_args__ = {'mysql_engine' : 'I
我已经使用 Media 类自定义了我的内联模型。 我想自定义内联字段集以实现两件事: 为每一行添加一个按钮 按下“添加新行”时从 javascript 代码运行 我试过覆盖 tabular.html
我的所有管理员/任何 url 正在呈现管理文件,但是当我尝试只点击管理员时,它显示 404 不在这条路线上。我可以为 url/admin 创建单独的路由,但这是他们的任何其他选项。这样我只能通过单一路
虽然我使用了许多图表,如 HighCharts、Charts.js、C3、D3,但是否有人尝试过或是否有一些关于如何将任何图表框架包含在 React-admin 中的文档?我看了一些,但看起来我们必须
react-admin 文档将资源的默认路由解释为: /posts/:id 映射到 PostEdit /posts/:id/show 映射到 PostShow 我希望我的应用程序默认为查看,并且仅当用
我正在使用 react-admin 前端框架,想知道是否有办法从路由中删除“#”。我正在使用 customRoutes 属性为我们的系统提供路由集合。 ``` 最佳答案 您可以创建自己的历
我是一名优秀的程序员,十分优秀!