خطای unexpected mutation of prop در Vuejs

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

props_thumb.jpg

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

برچسب ها:
پرسیده شده در: 3 سال قبل
آمار بازدید: 932
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

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

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

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

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

ارسال شده در: 3 سال قبل
masoudsalehi (1725)
بیش از ۲ سال عضویت در روکسو بیش از ۲ سال عضویت در روکسو دارای 1000 کارما دارای 1000 کارما نظرات دریافتی:‌ بیش از 50 نظرات دریافتی:‌ بیش از 50 دارای 25 پاسخ صحیح دارای 25 پاسخ صحیح ارسال کننده پاسخ با 25 رای ارسال کننده پاسخ با 25 رای
0

با سلام منم با این مشکل مواجه شدم کاری هم که گفتین رو انجام دادم و متغییر تعریف ششده رو به عنوان props دادم ولی همچنان خطا میده

ارسال شده در: 8 ماه قبل
ahura9 (74)
بیش از ۱ سال عضویت در روکسو بیش از ۱ سال عضویت در روکسو
جهت ارسال پاسخ ابتدا عضو سایت شوید.