2016-03-10 24 views
5

Gözlemlenebilir dizinin Mobx ile nasıl kullanılacağını anlamaya çalışıyorum.Mobx: Gözlemlenebilir dizi doğru görüntülenmiyor

let entities = observable([]); 
entities[0] = "foo"; 
autorun(() =>{ 
    console.log(entities); 
}); 

yazıyor:

[$mobx: Object] 
0: (...) 
1: (...) 
2: (...) 
3: (...) 
4: (...) 
5: (...) 
6: (...) 
7: (...) 
8: (...) 
9: (...) 
10: (...) 
11: (...) 
12: (...) 
13: (...) 
14: (...) 
15: (...) 
16: (...) 
17: (...) 
... 
999: (...) 

yerine klasik bir dizinin

Bunu neden anlamaya zor anlar var mı?

cevap

19

Şekil dışarı! Array.isArray (gözlemlenebilir ([])) harici bir kütüphaneye gözlemlenebilir bir dizi geçmesi gerekiyor bu yüzden her ne zaman, yanlış verecektir, bu bir olduğunu akılda docs

Ayı belirtildiği üzere

array.slice() veya array.peek() kullanarak diğer kütüphanelere veya yerleşik fonksiyonlara (ki bu iyi bir uygulama) geçmeden önce sığ bir kopya oluşturmanın iyi bir fikri. Yani Array.isArray (gözlemlenebilir ([]). Dilim()) gerçek verecektir.

doc exemple bize todos gerçek JS istasyonu gibi görünüyor, çünkü karışıklığa yol açabilecek bir todos.filter() göstermektedir. Ama öyle değil.

Örneğimin çalışması için gerçek bir JS dizisi gösterecek olan console.log(entities.slice())'a ihtiyacım var.

+0

'