> Faqs > Cuál de estas opciones es correcta en un binding en Lit

Cuál de estas opciones es correcta en un binding en Lit

Hola amigos, pido de su ayuda a dar solución a una guia que por más que intente no puedo resolver y que me explique!

ejemplo:

En el siguiente Lit ¿Que opción hace correcto el binding? & ¿Que opción de hacer binding genera un ERROR?

import { LitElement, html } from 'lit-element';

export class MyWebcomponent extends LitElement {


    static get properties() {
        return {
            name: { type: Object}
        };
    }
}

Respuestas:

<my-webcomponent name=${{paciente: 'Juan', altura: 32}}></my-webcomponent>
<my-webcomponent .name='{"paciente": "Juan", "altura": 32}'></my-webcomponent>
<my-webcomponent name="{'paciente': 'Juan', 'altura': 32}"></my-webcomponent>
<my-webcomponent .name=.person=${JSON.parse('{"paciente": "Juan", "altura": 25 }')}></my-webcomponent>

Respuestas

Esa pregunta está mal planteada, porque te tendrían que haber dicho dónde se debe usar ese código (las 4 respuestas indicadas), ya que la sintaxis sería distinta si está directamente en un código HTML o en el código Javascript del template de otro componente Lit, componente Angular (por ej) o cualquier otro lugar donde podrías llegar a usar el custom element.

Si se trata del template de otro componente Lit, que por sentido común diría que es lo que te están preguntando, mi respuesta sería que ninguna de las propuestas indicadas es válida.

Por tratar de entender algo veo dos posibilidades:

  1. Que hayas copiado y pegado mal las respuestas
  2. Que el profesor que ha hecho el examen se haya equivocado al escribir las respuestas, además de no haber dejado claro el contexto de la pregunta.

En mi opinión, como respuesta correcta, creo que el profesor había querido escribir esto.

<my-webcomponent
      .name=${JSON.parse(
        '{"paciente": "Juan", "altura": 25 }'
      )}
></my-webcomponent>

Sin embargo, sigue siendo una manera muy retorcida de escribir un template de un componente Lit. Nadie programa así, ya que dentro de un componente no bindearías un valor devuelto sobre un JSON.parse(), sino un objeto directamente.

Si el profesor quería saber si sabes o no que para bindear objetos necesitas la notación del punto podría haber hecho algo más simple y no despistar a los pobres estudiantes con código que no se aplica así en la práctica.

Te recomiendo que estudies mejor en EscuelaIT. En vez de exámenes tienes una práctica final que consiste en liberar un componente para la comunidad y demostrar que sabes publicando tu propio trabajo como software libre.

Juanjo
176 6 13 3