راکت
3 پاسخ

چطوری توی یک کامپوننت یه کامپوننت دیگه رو reload کرد

سلام. دوستان بنده یک صفحه ( home.blade.php ) دارم که داخل اون ۲ تا کامپوننت ویو جی اس هست. اولیش که یه نموداره. کامپوننت دوم یه فرم هست. توی فرم با استفاده از axios دیتا ها رو ارسال میکنم حالا میخواهم که وقتی این دیتا ها ذخیره شد کامپوننت اول که نمودار هست آپدیت بشه .


ثبت پرسش جدید
علی بیات
علی بیات
تخصص :توسعه دهنده ارشد وب
@ali.bayat7 سال پیشمطرح شد
0

@mohsenbostan

وقتی که درخواست axios با موفقیت ارسال شد٬ یه اِوِنت تعریف کنید:

this.$emit('formSaved')

و داخل کدهای home.blade.php و در تگِ کامپوننت نمودارتون به صورت زیر:

<nemoodar v-on:formSaved="updateChart"></nemoodar>

و نهایتا متد updateChart رو هم تعریف کنید.

export default {
  methods: {
    updateChart() {
      this.$forceUpdate();

    }
  }
}

محسن بستان
محسن بستان
تخصص :Senior Backend Developer
@mohsenbostan7 سال پیشمطرح شد
علی بیات
علی بیات
تخصص :توسعه دهنده ارشد وب
@ali.bayat7 سال پیشمطرح شد
0

در بعضی موارد ویو اسم اونت‌ها رو تغییر میده. حالت زیر رو هم امتحان کنید:

<nemoodar v-on:form-saved="updateChart"></nemoodar>

و همچنین

متد forceUpdate رو روی instance ویو هم میتونید به کار ببرید.

Vue.forceUpdate();

اگر همچنان ارور داشتید به مستندات اِوِنت ها در ویو مراجعه کنید:
https://vuejs.org/v2/guide/components-custom-events.html


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام