如何设置AppBar上配置显示/隐藏刷新按钮

0 react-admin

点击查看图片

按钮刷新AppBar不是在页面仪表板上刷新,因为我只使用组件Card,但在使用组件List或的页面上工作Datagrid,所以我想配置显示/隐藏刷新按钮AppBar或如何修复它适用于不使用组件List或的页面Datagrid

抱歉我英语不强。

Gil*_*cia 5

You'll have to fetch some data from the react-admin state for it to work. Indeed, the refresh button just trigger the refreshView action which update the state.admin.ui.viewVersion key of the the react-admin redux state. This key is a simple counter. Internally, we use this counter to check whether we must update some components data. Here is a simple example of a connected Dashboard which can do things when refreshed:

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);
Run Code Online (Sandbox Code Playgroud)

You can see it working in this codesandbox

Edit for newer version of react-admin

import { useVersion } from 'react-admin';

const Dashboard = () => {
    const version = useVersion();
    return <div>Refreshed {version} times.</div>;
}
Run Code Online (Sandbox Code Playgroud)