BasemapGallery<\/A> y recentrar el mapa cuando se cambia el mapa base.<\/P>define([\n 'dojo\/_base\declare',\n 'dojo\/_base\lang',\n 'dojo\/dom',\n 'dojo/dom-construct',\n 'esri/domUtils',\n 'esri/dijit/BasemapGallery',\n 'dijit/_WidgetBase',\n 'dijit/_TemplatedMixin',\n '.\/_RecenterMixin',\n 'dojo/text!.\/_templates/BasemapSwitcher.html'\n], function(\n declare, lang, dom, domConstruct,\n esriDomUtils, BasemapGallery,\n _WidgetBase, _TemplatedMixin,\n _RecenterMixin,\n template\n) {\n return declare([_WidgetBase, _TemplatedMixin, _RecenterMixin], {\n templateString: template,\n postCreate: function() {\n var node = dom.byId('map_root');\n esriDomUtils.hide(this.domNode);\n domConstruct.place(this.domNode, node);\n var map = this.get('map');\n this.gallery = new BasemapGallery({\n map: map,\n showArcGISBasemaps: true\n }, this.bmNode);\n this.gallery.startup();\n this.gallery.on('selection-change', lang.hitch(this, function() {\n this.recenter(); \/\/ MIXIN MAGIC\n }));\n },\n hide: function() {\n :& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;;& nbsp;; & nbsp ; esriDomUtils.hide(this.domNode); \ n & nb sp ; }, \ n & nb sp ; show: function() { \ n & nb sp ; & nb sp ; & nb sp ; & nb sp ; & nb sp ; & nb sp ; & nb sp ; & nb sp ; esriDomUtils.show(this.domNode); \ n & nb sp ; } \ n }); \ n}); < / PRE > < P > < SPAN style = " font-size: 8pt ; color : #505050 ; " > < EM > Mirando este ejemplo , incluso podría mover los métodos hide/show a un mixin y reutilizarlo en otro lugar < / EM > < / SPAN > < / P > < P > < / P > < H2 id = " toc-hId-1015442459 " id = " toc-hId-1015442459 " > Espera un segundo < / H2 > < P > Podrías preguntarte a ti mismo < EM > ¿cuál es la diferencia < / EM > entre algo como < STRONG > _WidgetBase < / STRONG > y un mixin? Típicamente , un mixin por sí solo es bastante inútil . En el ejemplo anterior , si solo extendieras < STRONG > _RecenterMixin < / STRONG > solo , no tendrías el método < STRONG > postCreate < / STRONG > ni una < STRONG > templateString < / STRONG > con qué trabajar . Un mixin puede incluso depender de algo como < STRONG > _WidgetBase < / STRONG > , enganchándose en métodos del ciclo de vida . En esencia , todavía estás extendiendo módulos , extendiendo el comportamiento o widgets . < / P > < P > < / P > < P > He puesto un repositorio demo de este proyecto en github para que juegues con él . Puedes verlo aquí : < A href = " https://github.com/odoe/esrijs-mixin-sample " rel = " nofollow noopener noreferrer " target = " _blank " > demo repo of this project </ A > . </ P >< P >< / P >< P > Así que sal ahí y ve si puedes empezar a separar mixins en tu proyecto y tal vez simplificar el mantenimiento de tu aplicación . Podrías descubrir que realmente te gusta la capacidad de reutilizar comportamientos entre diferentes widgets , < EM > sacar más provecho de todo el trabajo duro que pusiste en tu código </ EM > . </ P >< P >< / P >< P > Para más consejos y trucos geodev , visita mi blog : < A href = " http://odoe.net/blog/ " rel = " nofollow noopener noreferrer " target = " _blank " > mi blog </ A > . </ P >< / BODY >< / HTML >