找出何时调用刷新
Find out when refresh is called
我有一个自定义组件,我正在使用 react-admin 显示在其中一个编辑页面中。
对于 react-admin 组件,只要单击刷新按钮,页面就会自动更新服务器的结果。但是对于我的组件,我需要在单击刷新时手动更新组件。
Refresh button screenshot
我想出了一些可以重新加载的东西。每当组件收到道具时,我都会调用 loadUsersFromProps。
componentWillReceiveProps(nextProps) {
this.loadUsersFromProps(nextProps);
}
loadUsersFromProps(nextProps) {
const userIDs = this.state.selectedUsers.map(user => user.userID);
this.loadFromRecord(this.props, nextProps, 'userIDs', userIDs, this.fetchAndLoadUsersByIDs);
}
loadFromRecord(currProps, nextProps, key, stateValue, loadFunction) {
let reloadRequired = false;
if (nextProps.record && nextProps.record[key]) {
if (currProps.record) {
if (nextProps.record[key] !== currProps.record[key]) {
reloadRequired = true;
}
} else {
reloadRequired = true;
}
if (nextProps.record[key] !== stateValue) {
reloadRequired = true;
}
if (reloadRequired) {
loadFunction(nextProps.record[key]);
}
}
}
我有一个自定义组件,我正在使用 react-admin 显示在其中一个编辑页面中。
对于 react-admin 组件,只要单击刷新按钮,页面就会自动更新服务器的结果。但是对于我的组件,我需要在单击刷新时手动更新组件。
Refresh button screenshot
我想出了一些可以重新加载的东西。每当组件收到道具时,我都会调用 loadUsersFromProps。
componentWillReceiveProps(nextProps) {
this.loadUsersFromProps(nextProps);
}
loadUsersFromProps(nextProps) {
const userIDs = this.state.selectedUsers.map(user => user.userID);
this.loadFromRecord(this.props, nextProps, 'userIDs', userIDs, this.fetchAndLoadUsersByIDs);
}
loadFromRecord(currProps, nextProps, key, stateValue, loadFunction) {
let reloadRequired = false;
if (nextProps.record && nextProps.record[key]) {
if (currProps.record) {
if (nextProps.record[key] !== currProps.record[key]) {
reloadRequired = true;
}
} else {
reloadRequired = true;
}
if (nextProps.record[key] !== stateValue) {
reloadRequired = true;
}
if (reloadRequired) {
loadFunction(nextProps.record[key]);
}
}
}