HablemosDeVueJS / doctor-vue

Resolución de problemas que ocurren al desarrollar en VueJS
2 stars 1 forks source link

Problema al usar metodo en Componente Hijo #8

Closed xsHaDoWnx closed 4 years ago

xsHaDoWnx commented 4 years ago

Estimados tengo un componente Modal que importo a un componente principal. En el componente modal (hijo) tengo un metodo que recibe dos parametros de un formulario de este modal. Pero cada vez que ejecuto el metodo los parametros que envia son vacios ( "" ).

Este es mi codigo del Componente Modal


    <d-modal size="lg" v-if="showModal" @close="close">
        <d-modal-header>
            <d-modal-title>Crear Dealer</d-modal-title>
        </d-modal-header>
        <d-modal-body>
            <div class="form-row">              
              <div class="form-group col-md-6">
                <label for="name">Nombre</label>                              
                <!-- <input v-model.trim="$v.dni.$model" type="text" id="dni" placeholder="DNI" class="form-control inDNI" :class="{ 'input-error' : $v.dni.$error }" /> -->
                <input type="text" id="name" placeholder="Nombre" class="form-control"/>
                <!-- <label v-if="$v.dni.$error" class="messageError mdni">{{errordni}}</label>                 -->
              </div>
              <br>
              <div class="form-group col-md-6">
                <label for="lastName">Apellidos</label>                
                <!-- <input v-model.trim="$v.password.$model" type="password" id="password" placeholder="Contraseña" class="form-control inPass" :class="{ 'input-error' : $v.password.$error }" /> -->
                <input type="text" id="lastName" placeholder="Apellidos" class="form-control" />
                <!-- <label v-if="$v.password.$error" class="messageError mPassword" >{{errorPassword}}</label>                 -->
              </div>
              <br>              
              <button class="btn btn-pill btn-accent d-table mx-auto" @click.prevent="addDealer()">Grabar</button>
            </div>          
        </d-modal-body>
    </d-modal>  
</template>

<script>
import { mapState } from "vuex";
import axios from 'axios';

    export default {
        name: "modal-dealer",
        data(){
            return{
                name: '',
                lastName: ''

            }
        },
        props: {
            type: {
                type: String                
            }
        },

        computed: {
            ...mapState({
                showModal: state => state.modals.modaldealer.showModal
            })
        },
        methods: {

            async addDealer() {
                let that = this;        
                console.log(this.name);
                console.log(this.lastName);
                let dataDealer = {
                "name": this.name,
                "lastName": this.lastName
             };
            try{
                  let newDealer = await this.$axios.$post(`/dealers`, dataDealer );
                  if(newDealer.success){
                      //that.name = "",
                      //that.lastName = "",

                  }
                  this.$router.push('/dashboard/gestion-dealer');
                  this.close();
              }
              catch(e){
              this.$swal({
              icon: 'error',              
              title: e.response.data.error,
              confirmButtonText: 'Cerrar'
              });
              }
            },
            close() {
                this.$store.commit("modals/modaldealer/setShowModal", false);
            },

        }
    };
</script>

<style lang="scss" scoped>

</style>```
xsHaDoWnx commented 4 years ago

El error fue (humano), faltaba colocar el v-model en los input's para poder obtener los valores del formulario