2015-10-30 19 views
12

Bu hızlı bir işlemdir: Çocuk anahtarlarının benzersiz olması gereken kapsam nedir? Bu sadece ana bileşen mi yoksa tüm uygulama mı?React bileşen anahtarı ne kadar benzersiz olmalı?

İkincisi doğruysa, farklı algoritmalar arasında taşındığı zaman farklı algoritma tepkilerini algılamak anlamına gelir mi?

+3

Kardeşlerin içinde benzersiz olmalı. – zerkms

cevap

10

Kardeşleri içinde benzersiz, bu nedenle doğrudan ebeveyninin altındaki seviye. Ancak ana bileşenin çocukları aynı anahtarı tekrar kullanabilirler, çünkü son olarak tepki, geçerli bileşenin ve tüm atalarının anahtarının tamamının anahtarını oluşturur. Aşağıdaki örnekte sadece otomatik oluşturulan anahtarlar bulunmaktadır, ancak kendi anahtarınızı sağlamanız durumunda, bunun yerine kullanılacaktır.

React ID's

Chrome geliştirici araçları (sekme Elemanları) içinde kompoze kimlikleri görebilirsiniz.

+1

Cool, mantıklı, bu yüzden ikinci soruyu cevaplamak için, bir bileşenin başka bir ebeveyne taşınması onu React için tamamen farklı bir element yapar ve sıfırdan yeniden yaratılır, değil mi? – konrad

1

Evet, öyle görünüyor ... bunun ebeveynli re ise, farklı bir reactid (örn. http://webcloud.se/react-sortable/nested.html)

vereceğiz ve ayırır/tekrar monte tekrar. kendini sıfırlamak olabileceğinden ...

,componentWillUnmount: function() { 
//console.log("unmounted:", this.props); 
clearInterval(this.state.intervalId); 
clearTimeout(this.state.timeoutId); 
} 
,componentDidMount: function(){ 
    // console.log("mounted:", this.props); 
    this.state.intervalId = setInterval(this.incrementCount, 1000); 
this.state.timeoutId = setTimeout(this.setColorToBlack, 300); 
} 

http://jsfiddle.net/46x0j6uq/1/

Yani, daha iyi, görünüm bileşeni kendi içinde durumunu saklamak için değil. Yukarıdaki keman bir nokta kanıtlamak için sadece bir demo.

Diğer ilgili bağlantılar: Using keys to identify nested components in React.js

yaptım dilek aynı seviyede ötesinde kapsamlı/iç içe anahtar durumlarını dikkate almak şey vardı React, ama montaj yeniden tekrar umarım çok zararlı olmamalı unmounting/performansını tahmin .