Вам нужно будет получить некоторые данные из состояния реакции-администратора, чтобы они работали. Действительно, кнопка обновления просто вызывает действие 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