Vue: [2.0.0-rc.1] v-for و ref: لم تعد refs $ متفاعلة بعد الآن؟

تم إنشاؤها على ١٧ أغسطس ٢٠١٦  ·  3تعليقات  ·  مصدر: vuejs/vue

في 2.0.0-rc.1 ، بناء مثل

<p>Count: {{$refs.components && $refs.components.length}}</p>
<sub-component v-for="item in items" ref="components">

لا يعمل بعد الآن (يبقى العدد عند القيمة الأولية ، حتى إذا كان items وبالتالي تم تغيير عدد المكونات). في الإصدار 1 ، سيتم تحديث المصفوفات المكونة من $ ref بشكل تفاعلي.

لست متأكدًا مما إذا كان هذا خطأ أم ميزة ، ولكن يبدو أن # 2873 لا يذكرها.

التعليق الأكثر فائدة

@ yyx990803 هل يعني هذا أن استخدام خصائص this.$refs.* في computed سيتوقف أيضًا عن العمل في الإصدار 2 أم أنه مجرد استخدام في القوالب؟ هل يجب علي حل كل هذا باستخدام أحداث مخصصة؟

أقوم حاليًا بتمرير نتائج التحقق من صحة الأطفال إلى الوالد مثل هذا.

ال 3 كومينتر

هذا مقصود - السبب هو أن $refs تم تسجيله / تحديثه الآن أثناء عملية التقديم نفسها. لا يوصى بالاعتماد على قوالب $refs حيث إنها مخصصة فقط للوصول الآلي في JavaScript.

لقد قمت بتحديث # 2873 لتضمين هذا.

@ yyx990803 هل يعني هذا أن استخدام خصائص this.$refs.* في computed سيتوقف أيضًا عن العمل في الإصدار 2 أم أنه مجرد استخدام في القوالب؟ هل يجب علي حل كل هذا باستخدام أحداث مخصصة؟

أقوم حاليًا بتمرير نتائج التحقق من صحة الأطفال إلى الوالد مثل هذا.

يمكنك استخدام this.$forceUpdate() و setTimeout لإعادة عرض العرض عندما تقوم بتحديث البيانات وتجد أن $refs لا يتم تحديثه بشكل تفاعلي.

this.fetchSomeShit()
.then((data) => {
  this.data = data
  setTimeout(() => {
    this.$forceUpdate()
  })
})

استخدم setTimeout للتأكد من أن البيانات قد أعطيت في ما يقولون في قائمة مهام vue

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات