我有两个React源文件,A
和B
。
A
,在其渲染方法中,像这样调用B
:
{this.state.classificationSelected
?
<div>
<B classification={this.props.categories[this.state.categoryIndex].classes[this.state.classificationIndex]} ref="B"/>
</div>
:
null
}
如果选择了B
的{{1}}组件,则会呈现Classification
。
在A
中,我有以下方法根据A B
计算某些值:
Classification
目前,我正在使用B&#39 getSingleChoiceAttributes: function() {
var singleChoiceAttributes = [];
for(let attribute of this.props.classification.attributes){
if(attribute.attributeType == 'SingleChoice') {
singleChoiceAttributes.push(attribute);
}
}
return singleChoiceAttributes;
},
方法调用此方法。
我希望每次更改ComponentWillMount
分类时执行此方法。但是,现在只有在首次选择A
分类时才会调用它。
如何更改A
getSingleChoiceAttributes
A
(由Classification
表示)更改后的this.state.classificationIndex
方法更改?
答案 0 :(得分:2)
void componentWillReceiveProps(
object nextProps
)
组件接收新道具时调用。这种方法不是 要求初始渲染。
以此为契机,对之前的道具过渡作出反应 通过使用this.setState()更新状态来调用render()。该 可以通过this.props访问旧道具。调用this.setState() 在此函数中不会触发额外的渲染。