【发布时间】:2020-02-21 04:20:30
【问题描述】:
我有一个具有某些内部状态(例如 isLoading)的组件,它可以访问 redux 数据。在这个组件中,我想分派一个 thunk 操作(api 请求)导致 redux 数据更改。 thunk 完成后,我需要更改组件的状态。在我看来,有两种方法可以做到这一点:
- 使用 thunk 的承诺返回并在那里做我需要的一切,例如
handleSaveClick = (id) => {
const { onSave } = this.props;
this.setState({ isLoading: true });
onSave(id).then(() => this.setState({ isLoading: false }));
};
- 将回调传递给 thunk 并从 thunk 本身触发它,例如
handleSaveClick = (id) => {
const { onSave } = this.props;
this.setState({ isLoading: true });
onSave(id, this.onSaveSuccess);
};
哪种方法是正确的?
【问题讨论】: