如何解决我如何禁用react-admin的自动刷新功能
因此react-admin似乎具有一项功能,如果您空闲了一会儿再回来,它将重新加载数据,大概是为了确保您正在查看记录的最新版本。
这给我的具有某些自定义组件的编辑功能带来了一些问题。有没有办法禁用此自动重新加载功能?
解决方法
自动刷新由加载指示器(您在应用程序栏右上角看到的微调器图标)触发。
您可以通过自己替换加载指示器来禁用自动刷新。
import * as React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import { useSelector } from 'react-redux';
import { makeStyles } from '@material-ui/core/styles';
import CircularProgress from '@material-ui/core/CircularProgress';
import { useRefreshWhenVisible,RefreshIconButton } from 'react-admin';
const useStyles = makeStyles(
{
loader: {
margin: 14,},loadedIcon: {},{ name: 'RaLoadingIndicator' }
);
const LoadingIndicator = props => {
const { classes: classesOverride,className,...rest } = props;
useRefreshWhenVisible(); // <= comment this line to disable auto-refresh
const loading = useSelector(state => state.admin.loading > 0);
const classes = useStyles(props);
return loading ? (
<CircularProgress
className={classNames('app-loader',classes.loader,className)}
color="inherit"
size={18}
thickness={5}
{...rest}
/>
) : (
<RefreshIconButton className={classes.loadedIcon} />
);
};
LoadingIndicator.propTypes = {
classes: PropTypes.object,className: PropTypes.string,width: PropTypes.string,};
export default LoadingIndicator;
您还需要将此按钮放在自定义AppBar中,将您的AppBar插入自定义布局中,然后在管理员中使用该布局,如the react-admin Theming documentation中所述。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。