محسن بستان
6 سال پیش توسط محسن بستان مطرح شد
3 پاسخ

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

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


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش آپدیت شد
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
@mohsenbostan 6 سال پیش آپدیت شد
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش آپدیت شد
0

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

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

و همچنین

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

Vue.forceUpdate();

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


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

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