Как настроить отображение / скрытие кнопки обновления на панели приложений - PullRequest
0 голосов
/ 10 сентября 2018

Нажмите, чтобы увидеть изображение

Кнопка обновления на AppBar не обновляется на панели инструментов страницы, потому что я просто использую компонент Card, но работаю на странице с использованием компонента List или Datagrid, поэтому я хочу настроить отображение / скрытие кнопки обновления на AppBar или как это исправить, чтобы страница не использовала компонент List или Datagrid.

Извините, я не силен в английском.

1 Ответ

0 голосов
/ 11 сентября 2018

Вам нужно будет получить некоторые данные из состояния реакции-администратора, чтобы они работали. Действительно, кнопка обновления просто вызывает действие refreshView, которое обновляет ключ state.admin.ui.viewVersion в состоянии переадресации реакции-администратора. Этот ключ является простым счетчиком. Внутренне мы используем этот счетчик, чтобы проверить, должны ли мы обновить данные некоторых компонентов. Вот простой пример подключенного 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);

Вы можете видеть, как он работает в этом codesandbox

...