我有一个自定义组件,正在使用react-admin显示在一个编辑页面中。
对于react-admin组件,每当单击刷新按钮时,页面就会根据服务器的结果自动更新。但是对于我的组件,每当单击刷新时,我都需要手动更新组件。
答案 0 :(得分:0)
我设法找出一些要重新加载的东西。每当组件收到道具时,我就会调用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]);
}
}
}