Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

441
Views
No capturado (en promesa) TypeError: no se pueden leer las propiedades de undefined (leyendo 'idioma')

Soy muy nuevo en Vue y JavaScript, así que imagino que esta es una solución realmente simple. Hay publicaciones similares aquí, pero las soluciones que implementé no solucionaron el problema.

Pude utilizar la biblioteca CodeMirror para obtener un tablero de códigos, así como un menú desplegable HTML con idiomas para seleccionar (sin funcionar).

A partir de ahí, dado el idioma seleccionado en el menú desplegable, intenté actualizar el campo de idioma, según algunos ejemplos que he visto de otros implementando CodeMirror.

¿Alguna idea de lo que está pasando? Cualquier ayuda sería muy apreciada.

 <script> import { Codemirror } from "vue-codemirror"; import { javascript } from "@codemirror/lang-javascript"; import { python } from "@codemirror/lang-python"; import { oneDark } from "@codemirror/theme-one-dark"; import { reactive, computed } from "vue"; const themes = { oneDark }; const languages = { javascript: javascript(), python: python(), }; const state = reactive({ language: "python", theme: "oneDark", }); const extensions = computed(() => { const result = []; result.push(languages[state.language]); if (themes[state.theme]) { result.push(themes[state.theme]); } return result; }); export default { components: { Codemirror, }, setup() { return { extensions, log: console.log, }; }, }; </script> <template> <div class="toolbar"> <pre class="state">{{ state }}</pre> <div class="config"> <p> <label for="language">language:</label> <select name="language" id="language" v-model="state.language"> <option :value="option" :key="option" v-for="option in ['python', 'javascript']" > {{ option }} </option> </select> </p> </div> </div> <codemirror v-model="code" placeholder="" :style="{ height: '400px' }" :autofocus="true" :indent-with-tab="true" :tab-size="2" :extensions="extensions" @ready="log('ready', $event)" @change="log('change', $event)" @focus="log('focus', $event)" @blur="log('blur', $event)" /> </template>
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Intente mover su estado y propiedad calculada a la función de configuración:

 export default { components: { Codemirror, }, setup() { const state = reactive({ language: "python", theme: "oneDark", }); const extensions = computed(() => { const result = []; result.push(languages[state.language]); if (themes[state.theme]) { result.push(themes[state.theme]); } return result; }); return { extensions, state, log: console.log, }; }, };
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!