كيف أفصل بين متغيرين قمت بالمساوة بينهم في vuejs ؟

data() {
    return {
      current_user: {}
    };
  },
computed: {
    ...mapGetters(["user"])
},
created() {
    this.current_user = this.user;
  }

خزنت بيانات اليوزر ضمن متغير current_user وأريد أن استخدم هذه البيانات واعدل عليها.
لكنه يقوم أيضا بالتعديل على المتغير الأصلي user .
كيف أوقف هذه الخاصية؟؟؟؟؟؟

3 Likes

أهلا صهيب

يمكنك عمل نسخ لل object يوزر و تحطه في current_user لكي لا يبقوا يشيروا الى نفس المحتوى بالطريقة التالية

this.current_user = { ...this.user }
2 Likes

جميل شكراً:rose::rose:

2 Likes

لم تنجح هذه الطريقة؟؟

1 Like

ارجوا الافادة في هذا الموضع لانه سبب لي مشاكل كثيرة ولم استطيع ان اجد حل.

1 Like

مرحبا صهيب

المفروض الطريقة الأولى تفي بالغرض لا أعلم أين المشكلة بالضبط

نطلب رأي المختصين في جافا سكريبت كي يفيدونا
@sniperadmin @L.Da

1 Like
computed: {
    rev_links () {
      // eslint-disable-next-line vue/no-side-effects-in-computed-properties
      const x = { ...this.links.reverse() }
      return x
    }

هنا استخدمت الطريقة التي اخبرتني بها لكن اي تغيير اقم به يؤثر على المتغير الاساسي links

1 Like

هممم غريب كودك صهيب :thinking: المفروض computed properties لا تستطيع التغيير عليها اصلا…

يعني هي فقط لتبسيط الكود تحطها و ليست قيمة تستطيع للتغيير عليها

أي تغيير تقصده إذا؟

1 Like
data () {
    return {
      drawer: false,
      links: [
        { icon: 'home', text: 'الرئيسية', route: '/' },
        { icon: 'card_travel', text: 'سياسة', route: '/politics' },
        { icon: 'euro_symbol', text: 'اقتصاد', route: '/economy' },
        { icon: 'library_books', text: 'ثقافة', route: '/culture' },
        { icon: 'rowing', text: 'منوعات', route: '/entertainment' },
        { icon: 'contact_mail', text: 'اتصل بنا', route: '/contact' }

      ]
    }
  },

انا اريد ان استخدم هذه المصفوفة في المقلوب في مكان واحد فقط، لكن عنما اقوم بتنفيذ اي تغيير عليها تتطبق التغييرات ليها دوماً.
وانا لا اريد ذلك

2 Likes

أنت تريد تغيير links بدون ما تتغير rev_links… هذا هو؟

2 Likes

لا انا اريد ان احصل على مقلوك links بدون ان تتغير

2 Likes

اها فهمت المشكل أخيرا :grin:

الدالة reverse تغير المصفوفة الأصلية لذلك بدلا من عمل

const x = { ...this.links.reverse() }

استعمل

 const x = [...this.links].reverse()
2 Likes

حياك الله
نعم الان مشي الحال :star_struck: :star_struck:

2 Likes