Merhaba arkadaşlar tepki vermek için yeni ve belirli bir projeye takılıyorum. Sorun şu ki, bir ana bileşenden alınan bu.props bir api_urlin var. Ve bu alt bileşende JSON kullanarak bazı verileri almak için api_url kullanmak istiyorum. ebeveyn bileşeninde Reaksiyona girerek this.props dosyasına erişme ComponentDidMount
iRepositories api_url={this.state.objs.repos_url}
varsa ve çocuk bileşeninde i
componentDidMount() {
$.getJSON(this.props.api_url, function(json) {
for (var i = 0; i < json.length; i++) {
var each_repo = json[i]
console.log(each_repo["name"]);
}
});
}
gibi bir şey yani ne ihtiyacım $ .getJSON url bölümündeki ilgili api_url olduğunu istiyorum .
componentDidMount içindeki this.props dosyasına erişmenin bir yolu var mı, yoksa aynı sonuçları elde etmenin başka bir yolu var mı?
Bununla ilgili başka bir şey de, ana bileşenin ComponentDidMount öğesinde bir $ .getJSON çağrısı kullanmamdır. Şimdiden teşekkürler. Eğer çocuk bileşeninde bir yapıcı oluşturmak ve sonra
constructor(props) {
super(props);
this.state = {}
}
componentDidMount(){
$.getJSON(this.props.api_url , function(json) {
for (var i = 0; i < json.length; i++) {
var each_repo = json[i]
console.log(each_repo["name"]);
}
});
}
olarak super() işlevine bir özellik olarak sahne geçmesi gerekiyor çocuk bileşeninde Dikmeler erişmek için
Tam olarak anladığımdan emin değilim ... this.props tüm sınıfta kullanılabilir. Yani kodun iyi. –
Zaten, '$ .getJSON' içinde demek istiyor musunuz? –
Kodunuz çalışıyor - http://jsbin.com/wirodemulu/edit?html ,jsconsconsole, çıkış - eğer buna erişmek istiyorsanız '$ .getJSON'daki geri arama işlevinden' .bind() 'işlevini kullanmanız gerekir. –