如果不保存数据,我想取消componentWillUnmount()方法。我有一个状态属性IsSaved,它定义是否保存数据? 我想写点东西 componentWillUnmount() { 如果(!已保存) { //取消卸载停留在同一组件上 } } 这可能吗?还是我需要通过其他方式实现它?
答案 0 :(得分:0)
您不能取消“ componentWillMount”,因为它是生命周期回调。 您可以做的是避免卸下组件。 因此,如果您可以阻止传播会导致卸下组件的操作,那么这是解决问题的正确方法。
注意:
如果组件卸载是由react-router触发的,则可以尝试 setRouteLeaveHook
componentWillMount() {
this.unregisterLeaveHook = props.router.setRouteLeaveHook(props.route, this.routerWillLeave.bind(this));
}
routerWillLeave(nextLocation) {
return false;
}
当您要卸载组件时,请注销钩子:
componentWillUnmount() {
this.unregisterLeaveHook();
}