خطای unexpected mutation of prop در Vuejs

من تو دوره آموزشی ویو جی اس قسمت 15 اون جایی که به متغیر myUsername که داخل props  هست و داخل تابع usernameReset که داخل کامپوننت userDetail هست رو بهش یک مقدار دادین و بدون خطا کار کرد ولی من اینکارو که انجام میدم به خطا میخورم. تصویر زیر خطای من هست:

props_thumb.jpg

ممنون میشم بگید که چرا این اتفاق میفته.

برچسب ها:
پرسیده شده در: 4 ماه قبل
آمار بازدید: 166
james (20)
0

باید به این نکته توجه کنید که شما نمیتونید یک props رو مقداردهی کنید بلکه فقط میشه مقدار یک props رو بخونید. بنابراین برای تغییر دادن مقدار یک props‌ ابتدا باید یک متغییر در data تعریف و مقدار props رو بهش اختصاص بدید. سپس با اون متغییر در کل برنامه کار کنید (حالا می خواید تغییرش بدید یا هر کار دیگه ای). به کد زیر دقت کنید:

Vue.component('task', {
    template: '#task-template',
    props: ['list'],
    data: function () {
        return {
            mutableList: JSON.parse(this.list);
        }
    }
});

الان توی این کد، props به نام list‌ هست ولی می خوایم داخل پروژه به اون مقدار بدیم. باید در ابتدا یه متغییر داخل data تعریف کنیم که اینجا اسمش هست mutableList و بعد مقدار اون props رو بهش بدیم که اینجا مقدارش هست this.list

ارسال شده در: 4 ماه قبل
pirniak (339)
بیش از ۱ سال عضویت در روکسو بیش از ۱ سال عضویت در روکسو دارای سوال با ۱۰ رأی دارای سوال با ۱۰ رأی ارسال کننده پاسخ با ۱۰ رای ارسال کننده پاسخ با ۱۰ رای دارای ۲۰۰ کارما دارای ۲۰۰ کارما
0

خب من اینکارو انجام دادم  و مقدار پراپس رو داخل یک متفیر ریختم ولی اون مقداری رو که داخل پراپس هست رو نشون نمیده .یعنی مثلا داخل کامپوننت پرنت ی متغیر داریم با یک مقدار اولیه و مقدار این متغیر رو با یک تابع تغییر می دیم و همون متغیر رو با پراپس به کامپوننت فرزند می فرستیم و حالا داخل کامپوننت فرزند ما می خوایم مقدار جدید که داخل متغیر پراپس  از پرنت اومده رو ببینیم ولی نمیشه مقدار اولیه داخل متغیر نمایش داده میشه  نه مقداری که توسط یک تابع تغییر کرده

ارسال شده در: 4 ماه قبل
james (20)
0

دلیل این موضوع اینه که شما به جای ارسال متغییر به کامپوننت فرزند، props را ارسال می کنید. به عبارت دیگه باید متغییری که در data تعریف کرده اید را به عنوان props به کامپوننت فرزند بفرستید. اگر این کار رو انجام دادید و نشده لطفا کدهای خودتون رو از طریق آیکن به سوال خودتون که بالا هست اضافه کنید.

ارسال شده در: 4 ماه قبل
masoudsalehi (1362)
بیش از ۲ سال عضویت در روکسو بیش از ۲ سال عضویت در روکسو دارای 1000 کارما دارای 1000 کارما دارای 10 پاسخ صحیح دارای 10 پاسخ صحیح ارسال کننده پاسخ با 25 رای ارسال کننده پاسخ با 25 رای
جهت ارسال پاسخ ابتدا عضو سایت شوید.
اینستاگرام روکسو

روکسو در اینستاگرام

به جمع هزاران کاربر اینستاگرامی روکسو بپیوندید.