BasemapGallery<\/A> e recentralizar o mapa quando o mapa base for alterado.<\/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 ; esriDomUtils.hide(this.domNode); \ n & nbsp ;& nbsp ;}, \ n & nbsp ;& nbsp ; show: function() { \ n & nbsp ;& nbsp ; esriDomUtils.show(this.domNode); \ n & nbsp ;& nbsp ;} \ n }); \ n}); < / PRE > < P > < SPAN style = "font-size: 8pt ; color : #505050 ; " > < EM > Olhando este exemplo , eu poderia até mover os métodos hide / show para um mixin e reutilizá-los em outro lugar < / EM > < / SPAN > < / P > < P > < / P > < H2 id = "toc-hId-1015442459" id = "toc-hId-1015442459" > Espere um segundo < / H2 > < P > Você pode estar se perguntando < EM > qual é a diferença < / EM > entre algo como < STRONG > _WidgetBase < / STRONG > e um mixin ? Normalmente , um mixin por si só é bastante inútil . No exemplo acima , se você apenas estendesse o < STRONG > _RecenterMixin < / STRONG > sozinho , não teria o método < STRONG > postCreate < / STRONG > ou uma < STRONG > templateString < / STRONG > para trabalhar . Um mixin pode até depender de algo como o < STRONG > _WidgetBase < / STRONG > , conectando-se aos métodos do ciclo de vida . No fundo , você ainda está estendendo módulos , estendendo o comportamento ou widgets . < / P > < P > < / P > < P > Eu coloquei um repositório demo deste projeto no GitHub para você brincar : < A href = "https : \/ \/ github.com \/ odoe \/ esrijs-mixin-sample " rel = "nofollow noopener noreferrer" target = "_blank" > demo repo deste projeto </ A > . </ P >< P >< / P >< P > Então vá lá e veja se consegue começar a separar mixins no seu projeto e talvez simplificar a manutenção da sua aplicação . Você pode descobrir que realmente gosta da capacidade de reutilizar comportamentos entre diferentes widgets , < EM > aproveitar mais todo o trabalho duro que colocou no seu código </ EM > . </ P >< P >< / P >< P > Para mais dicas e truques geodev , confira meu blog : < A href = "http : \/ \/ odoe.net \/ blog \/ " rel = "nofollow noopener noreferrer" target = "_blank" > meu blog </ A > . </ P >< / BODY >< / HTML >