我想在组件卸载后取消某些功能,因为这会导致内存泄漏,我的代码如下所示
componentDidUpdate(prevProps) {
if (prevProps.org.org !== this.props.org.org && this.mounted) {
this.props.clearGraph();
this.props.graphGet(this.props.org.org);
this.setState({ org: this.props.org.org });
}
}
componentDidMount() {
const abox = "a" + this.props.org.org.substr("1");
this.props.getHistory(abox);
this.props.graphGet(this.props.org.org);
}
componentWillUnmount() {
}
我只想取消graphGet这是一个redux操作
答案 0 :(得分:1)
您不能通过设计取消Redux操作。一旦它们被分派,它们将由减速器处理并执行状态转换。
但是,您可以调度另一个操作来还原状态更改或引起副作用。通常,您会为redux-observable
使用另一个库。
例如,您可以定义3个动作:START_GRAPH_GET
,CANCEL_GRAPH_GET
和FINISH_GRAPH_GET
。在START
上开始抓取,在CANCEL
上取消所有未完成的抓取,一旦抓取完成,便分派FINISH
并将结果保存在存储中。
要呈现结果,您需要使用react-redux
和mapStateToProps
函数进行连接。
要取消卸载,您仅在需要时调度CANCEL
操作。
由于您的代码根本不显示与Redux相关的任何内容,因此我认为在此提供更笼统的答案是合理的。