找出何时调用刷新

时间:2018-09-24 09:08:57

标签: react-admin

我有一个自定义组件,正在使用react-admin显示在一个编辑页面中。

对于react-admin组件,每当单击刷新按钮时,页面就会根据服务器的结果自动更新。但是对于我的组件,每当单击刷新时,我都需要手动更新组件。

Refresh button screenshot

1 个答案:

答案 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]);
        }
    }
}