componentWillReceiveProps не стреляет
В других моих классах componentWillReceiveProps работал хорошо, но по какой-то причине он здесь не срабатывает.
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
class CommentBox extends React.Component {
constructor(props) {
super(props);
this.state = {companyToRender: null};
}
componentWillReceiveProps(nextProps) {
this.setState({companyToRender: nextProps.companyToRender});
}
...
}
Реквизит, переданный в itemView, равен нулю, если ничего не нужно передавать, или массиву, который ему присваивает ItemView.
componentWillReceiveProps () срабатывает только тогда, когда атрибуты состояния становятся нулевыми, но не когда оно устанавливается. ((null -> entry) не работает, но (entry -> null) работает).
Я что-то упускаю? Спасибо!
-- редактировать:
(null -> entry) обновляет состояние, но не вызывает журналы или любые последующие componentWillRecieveProps (). (Но запись -> NULL делает.)