межкомпонентная связь в nuxt js - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь вызвать функцию компонента из другого компонента. В вызываемой функции есть диспетчер для хранения, который работает, если вызов его из того же компонента, но выдает ошибку, если вызов сделан из других компонентов. То же самое с $ emit и $ on


Невозможно прочитать свойство 'dispatch' из неопределенного

Компонент, из которого вызывается функция

<template>
 <div>
   <button @click="doSubmit()">submit</button>
 </div>
</template>

<script>
  import empinfo from '../components/empinfo'
    export default {
     components: {

      },
   data() {
     return {
      infoEmp: {

      }   
    }
  },
 methods: {
  doSubmit() {
  empinfo.methods.putEmpinfo()
  console.log('this sendEmpinfo', empinfo.methods.putEmpinfo())

  // this.$nuxt.$on('EMP_INFO', (data) => {
  //   this.infoEmp = data
  //   console.log('in data', data)
  // })
  console.log('infoEmp', this.infoEmp)
  }
 }
}
</script>

Здесь

Функция называется

<script>
  export default {
   data() {
     return {
      empInfo: {
       lastName: "",
       firstName: "",
       middleIntial: "",
       otherLastName: "",
       address: "",
       apartmentNo: "",
       city: [],

     }
   }
 },
computed: {
compEmpinfo() {
  // console.log('emp inform', event)
  // this.$store.dispatch('formdata/EMP_INFO', this.empInfo)

  console.log("this is ", this)

  const some = this.$store.dispatch("formdata/EMP_INFO", this.empInfo)
  console.log("log sto", some)
  return some

  // return this.$nuxt.$emit('EMP_INFO', this.empInfo)
}
},

methods: {
  putEmpinfo() {
  // console.log('emp inform', event)
  // this.$store.dispatch('formdata/EMP_INFO', this.empInfo)

  //console.log("this is ", this)

  try {
    const some = this.$store.dispatch("formdata/EMP_INFO", 
this.empInfo)
    console.log("log some", some)
  } catch (error) {
    console.log("try clatch", error)
  }
  // return this.$nuxt.$emit('EMP_INFO', this.empInfo)
},
testcall() {
  console.log("test call works")
},
sendEmpinfo() {
  return this.empInfo
  }
  }
  }
  </script>
...