react-admin - 如何在 AppBar 上设置配置显示/隐藏刷新按钮
问题描述
按钮刷新AppBar
不是在页面仪表板上刷新,因为我只使用组件Card
但使用组件List
或在页面上工作Datagrid
,所以我想配置显示/隐藏刷新按钮AppBar
或如何修复它适用于页面不使用组件List
或Datagrid
。
对不起,我英语不强。
解决方案
您必须从 react-admin 状态中获取一些数据才能使其工作。实际上,刷新按钮只是触发了refreshView
更新state.admin.ui.viewVersion
react-admin redux 状态键的操作。这把钥匙是一个简单的计数器。在内部,我们使用此计数器来检查是否必须更新某些组件数据。这是一个连接的简单示例,Dashboard
它可以在刷新时执行操作:
import React, { Component } from "react";
import { connect } from "react-redux";
class Dashboard extends Component {
componentDidMount() {
this.doOnMountAndWhenRefreshed();
}
componentDidUpdate(prevProps) {
if (prevProps.views !== this.props.views) {
this.doOnMountAndWhenRefreshed();
}
}
doOnMountAndWhenRefreshed = () => {
// This is where you do update your component:
// - Make API requests
// - Fetch data from the react-admin store, etc.
};
render() {
const { views } = this.props;
return <div>Refreshed {views} times.</div>;
}
}
const mapStateToProps = state => ({ views: state.admin.ui.viewVersion });
export default connect(
mapStateToProps,
{}
)(Dashboard);
你可以看到它在这个代码框里工作
编辑更新版本的 react-admin
import { useVersion } from 'react-admin';
const Dashboard = () => {
const version = useVersion();
return <div>Refreshed {version} times.</div>;
}
推荐阅读
- java - 在后台颤动声音警报并在点击通知时取消
- html - 如何为每列内的 2 列创建响应式布局我想要另外 2 列?
- sql - 如何在 sql DB2 中使用条件其他字段和期间日期标记列?
- python - 如何在操作中用以前的值填充 NaN 值?
- android - Android致命异常:java.lang.UnsupportedOperationException:不支持删除
- ruby-on-rails - Rails TimeWithZone 不匹配
- python-3.x - TypeError:loads() 得到了一个意外的关键字参数“max”
- php - 在 Laravel Homestead 中禁用 mailhog
- python - “,”附近:执行 SQLite 更新时出现语法错误
- javascript - 模态窗口不滚动到底部