راکت

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

3 پاسخ

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

ثبت پرسش جدید

پاسخ‌ها

3
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

@mohsenbostan

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

this.$emit('formSaved')

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

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

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

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

    }
  }
}
محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

شاید پاسخ شما همین‌جا باشد

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

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

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

و همچنین

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

Vue.forceUpdate();

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

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

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