https://facebook.github.io/react/docs/reusable-components.html#no-autobinding
Yok Autobinding
Yöntemleri
export default class MainPage extends React.Component {
constructor(props) {
super(props);
this.state = {
selectedValue: "myself",
destinations: ["myself","somebody"],
};
}
handleChange(value) {
this.setState({selectedValue: value});
}
renderRadioRow(row) {
return (
<ListItem key={row} tappable>
<label className='left'>
<Input
inputId={`radio-${row}`}
checked={row === this.selectedValue}
onChange={this.handleChange.bind(this, row)}
type='radio'
/>
</label>
<label htmlFor={`radio-${row}`} className='center'>
{row}
</label>
</ListItem>
)
}
render() {
return (
<Page renderToolbar={this.renderToolbar}>
<p style={{textAlign: 'center'}}>
test
</p>
<List
dataSource={this.state.destinations}
renderRow={this.renderRadioRow}
/>
</Page>
);
}
}
otomatik örneğine bu bağlamaz, yani düzenli ES6 sınıfları aynı anlamsal izleyin. Sen
Sen bağlama kullanabilirsiniz
() this
<div onClick={this.tick.bind(this)}>
korumak için açıkça .bind(this)
veya ok fonksiyonlarını =>:
kullanmak gerekecektir Yoksa ok işlevlerini kullanabilirsiniz
<div onClick={() => this.tick()}>
Size bağlamak tavsiye Oluşturucudaki olay işleyicileriniz her durumda yalnızca bir kez bağlanırlar:
constructor(props) {
super(props);
this.state = {count: props.initialCount};
this.tick = this.tick.bind(this);
}
o yapıcı bir kez bağlandı olarak
Şimdi doğrudan this.tick
kullanabilirsiniz:
Zaten yapıcı
<div onClick={this.tick}>
Bu uygulamanın performans için iyidir de bağlı olduğu, özellikle sen alt bileşenlerde sığ bir karşılaştırmayla shouldComponentUpdate() öğesini uygulayın.
Yığın Parçacıkları (kullandığınız '<>' araç çubuğu düğmesi ** ** çalıştırılabilir ** örnekleri içindir. Örneğiniz runnable değil, bu yüzden bir kod bloğunda olmalıdır ('{}' araç çubuğu düğmesi). Yığın Parçacıkları ReactJS'yi desteklediğinden, daha da iyi * olması * runnable olabilir. –
renderRadioRow işlevi, 'this', onChange = {this.handleChange.bind (bu, row)} için kullanılan yeni bir İçerik oluşturur. –
"undefined" kelimesini okuyamayan bir kanonik cevap var mı? Bu soruları görmeye devam ediyorum ve vakaların% 99'unda neden kolayca anlaşılıyor - hata mesajı herşeyin gerekli olduğunu söylüyor. X'e 'undefined' olan bazı değişkenlerden erişiyorsunuz. Önerilen eylem planı - nedenini bulun ve ya önleyin ya da X'e erişmeyin. İhtiyaçlarınıza uygun. Soruların geri kalanı bir üçüncü parti kütüphanesinde aynı şeylerle ilgilidir. Bu durumda, genellikle doğru kullanılmaması sorunu olur.Önerilen eylem planı - yanlış yapılandırılmış veya yanlış anlaşılmış olup olmadığını bulun. – vlaz