Soy nuevo en JavaScript (y en la mayoría de los conceptos de codificación en general) y siento que debe haber alguna solución simple que aún no he encontrado. Necesito información de una propiedad de un objeto (no estoy totalmente seguro si estoy usando esos términos correctamente). El objeto se crea utilizando ArcGIS API for Javascript.
console.log(view.popup); console.log(view.popup.id); console.log(view.popup.title);Al iniciar sesión en la consola (usando las líneas de código que se muestran arriba), puedo ver que las propiedades existen porque las líneas a continuación se registran en la consola (desde la Línea 1).
identificación: "17e2bf83e50-widget-1"
título: "k0"
Luego registro solo la propiedad de identificación (Línea 2) e imprime solo la propiedad de identificación. Sin embargo, si trato de registrar view.popup.title (Línea 3), registra 'nulo' en la consola. Cualquier otra cosa que intento imprimir usando console.log imprime el mismo valor que se encuentra en view.popup. Solo necesito poder usar ese valor almacenado en view.popup.title y, por alguna razón, parece ser el único donde puedo ver que está allí pero no puedo acceder a él directamente.
Editar: este ciertamente parece ser el problema comentado por la gente a continuación, ¡gracias por esos enlaces! He estado tratando de hacer stringify (como se sugiere en ¿La consola de JavaScript de Chrome es perezosa para evaluar objetos? ), Pero descubrí que solo encuentra algunas de las propiedades. También intenté hacer que esperara para tratar de encontrarlo hasta que la propiedad ya no sea nula, pero definitivamente es más tarde en el código donde eso sucede (el código simplemente ingresa en un ciclo infinito hasta que hay un error de llamada). La vista se genera usando https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html#popup (por lo que no tengo una comprensión completa de lo que contiene/cuándo y cómo hace que la propiedad view.popup.title)
view = new SceneView({ viewingMode: "local", map: scene, container, camera, spatialReference: { wkid:3089 } });Después de enterarme aquí de que está relacionado con view.popup.title que aún no existe en el momento de iniciar sesión, me mudé al foro de ArcGIS para preguntar cómo se genera la vista y obtuve una respuesta que me permite acceder a ella. https://community.esri.com/t5/arcgis-api-for-javascript-questions/accessing-title-of-default-popup-created-for-a/mp/1131210#M75813
view.popup.watch("title", () => { console.log(view.popup.title); });