Try something like this to reset the map container on each view enter event.
initialMapLoad: boolean = true;
//...
resetMapContainer(div:string,visible:boolean){
setTimeout(()=>{
if(this.map){
this.map.setDiv(div);
this.map.setVisible(visible);
}
},600) // timeout is a bit of a hack but it helps here
}
ionViewWillEnter(){
if (!this.initialMapLoad) {
// subsequent loads...
this.resetMapContainer('map',true); // assumes div has id of map
} else {
// first load...
this.initialMapLoad = false;
}
}