方法一:使用navigation的didFocus函数
componentDidMount() {
const { navigation } = this.props;
this.focusListener = navigation.addListener('didFocus', () => {
this.pageInit();
//处理自己进入路由的逻辑
});
}
方法二:使用react-native的DeviceEventEmitter 函数
1、需要刷新的页面
import { DeviceEventEmitter } from 'react-native';
componentDidMount() {
this.handleGetDetail();
//设置监听,刷新页面
this.listener = DeviceEventEmitter.addListener('refresh-VehicleGeneral', message => {
//收到监听后想做的事情
this.handleGetDetail();
});
}
2、修改数据后,触发上面改变的页面
//调用接口保存
let params = values;
modifyVehicle(params).then(res => {
if(res.status===200){
Toast.success('保存成功');
let vehicleInfo = res.body;
const timeNow = new Date().getTime();
DeviceEventEmitter.emit('refresh-VehicleGeneral', timeNow);
DeviceEventEmitter.emit('refresh-VehicleList', timeNow);
NavigationService.navigate('VehicleGeneral',vehicleInfo)
}else{
Toast.fail(res.msg);
}
});