'ı ateş etmiyor Diğer sınıflarımda, componentWillReceiveProps güzel çalışıyordu, ama bir nedenden dolayı, burada ateş etmiyor. geçmez edilecek veya dizi ItemView için olmak üzere olduğu takdirdecomponentWillReceiveProps
ItemView.jsx
class ItemView extends React.Component {
constructor(props) {
super(props);
this.state = {
name: null,
rating: null,
sector: null,
location: null,
description: null,
image: "blank.png",
show: false
};
}
...
componentWillReceiveProps(nextProps) {
if(!nextProps.companyToRender) {
this.setState({
name: null,
rating: null,
sector: null,
location: null,
description: null,
image: "blank.png",
show: false
});
}
else {
var companyToRender = nextProps.companyToRender;
this.setState({
name: companyToRender.name,
rating: companyToRender.rating,
sector: companyToRender.sector,
location: companyToRender.location,
description: companyToRender.description,
image: companyToRender.image,
show: true
});
}
...
render() {
return(
<div>
...
<CommentBox show={this.state.show} companyToRender={this.state.name}/>
...
</div>
);
}
}
CommentBox.jsx pervane itemView iletilen
class CommentBox extends React.Component {
constructor(props) {
super(props);
this.state = {companyToRender: null};
}
componentWillReceiveProps(nextProps) {
this.setState({companyToRender: nextProps.companyToRender});
}
...
}
ya sıfırdır.
componentWillReceiveProps(), yalnızca durumun nitelikleri boşaldığında, ancak ayarlandığında değil, tetiklenir. ((null -> entry) çalışmıyor ama (entry -> null) çalışır).
Bir şeyleri kaçırıyor muyum? Teşekkürler!
- düzenleme:
(boş -> girişi) güncellemeler devlet, ancak günlükleri veya sonraki herhangi componentWillRecieveProps çağırmaz(). (Ancak, giriş -> boş yapar.)
"Item" öğesi "componentWillReceiveProps" veya "name" durumunun doğru olarak ayarlandığı kromun "tepki" denetçisi eklentisi aracılığıyla doğruladınız mı? 'Item' 'yeniden adlandırılıyor çünkü' isim 'değişmedi. –
Hem componentWillReceiveProps() işlevinin içine hem de CommentBox.jsx'in render() işlevine giriş yapmayı denedim. Garip bir şekilde, logWarRecieveProps() içindeki günlüğü yazdırmaz, ancak null -> girişi sırasında render() içindeki durumu değiştirmez. Çıkışı krom üzerinde göstermek için girişi güncelleyeceğim. –
"Öğeye geçirilen öğe, aktarılacak hiçbir şey yoksa veya ItemView öğesinin atadığı dizilerse null." Sorunuzda sadece bir hata mı var, yoksa '' companyToRender'' bir dizidir (dediğiniz gibi)? Sanırım bir nesne olmalı. Ayrıca, bileşen ilk kez monte edildiğinde componentWillReceiveProps çağrılmıyor (ancak bundan sonra). –