HI
I have created an online arcgis map with basemap as topographic and top layer is this LINZ/geotiffs (MapServer)  I cannot able to use this layer directly as basemap in my app it disturb my functionality so i use topographic layer as basmap for this webmap ,
Furthermore, i have done this on click of button by dynamically changing portalItem id on click, but for this i have to refresh my page for toppo button.
      var webmap = new WebMap({
          portalItem: {
            // autocasts as new PortalItem()
            id: "<?=$map_id?>"
          }
        }); //End WebMap
Is their any other way, i can do it smoothly? Dynamically changing webmap, or any other way???
Hoping for positive response from the community.
Please don't send link of Basemap | ArcGIS API for JavaScript 4.15 
I have already read it, but don't know how to practically implment it.