es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Selector de fecha de llegada de hotel en VueJS @check-in-changed no puede enviar valor.

He estado tratando de enviar los valores @check-in-changed y @check-out-changed al título del modal y cuando registro en la consola el método getStartDate obtengo la fecha correcta, pero al enviarla al título del modal obtengo un valor de indefinido. ¿Podrías ayudarme, por favor?

hotel-date-picker:

<HotelDatePicker :gridStyle="false" :showSingleMonth="true" :minNights="7" :alwaysVisible="true"
:showPrice="true" priceSymbol='€' :periodDates="detail.periodDates"
:disabledDates="detail.disabledDates" @check-in-changed="getStartDate"
@check-out-changed="getEndDate">
</HotelDatePicker>

métodos:

 getStartDate(newDate) {
      console.log(newDate)
      return (newDate)
    },

<pre><code>getEndDate(newDate){
  return (newDate)
},
</code></pre>

<p>```</p>

La consola de getStartDate muestra:

Date Mon Nov 22 2021 00:00:00 GMT+0100 (Hora estándar de Europa central)

“`

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el problema radica en cómo se está pasando el valor de newDate al título del modal. Una posible solución es asegurarse de que el método getStartDate establezca una propiedad de datos a nivel de componente con el valor de newDate, y luego utilizar esa propiedad para poblar el título del modal. Aquí hay un ejemplo de código que demuestra este enfoque:

    <template>
      <div>
        <hoteldatepicker @check-in-changed="setStartDate"></hoteldatepicker>
    
        <b-modal :title="formattedStartDate">
          ...
        </b-modal>
      </div>
    </template>
    
    <script>
    export default {
      data() {
        return {
          startDate: null,
        };
      },
      methods: {
        setStartDate(newDate) {
          this.startDate = newDate;
        },
      },
      computed: {
        formattedStartDate() {
          if (this.startDate === null) {
            return "Por favor seleccione una fecha de check-in";
          } else {
            return "Check-In: " + this.startDate.toLocaleDateString();
          }
        },
      },
    };
    </script>
    

    En este ejemplo, el método setStartDate establece la propiedad de datosstartDate con el valor de newDate cada vez que el usuario selecciona una fecha de check-in. Luego, la propiedad computada formattedStartDate se utiliza para generar el texto que aparecerá en el título del modal. Si startDate es null, el texto dice “Por favor seleccione una fecha de check-in”. De lo contrario, la fecha de check-in se formatea utilizando toLocaleDateString() y se le agrega el prefijo “Check-In:”. Al utilizar una propiedad computada, podemos actualizar automáticamente el título del modal cada vez que cambia startDate, sin tener que llamar manualmente a un método separado.

Comments are closed.