【发布时间】:2020-01-09 07:05:53
【问题描述】:
假设我们有一个父组件:
class ParentComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
titleState: undefined
};
}
componentWillMount() {
// import Title string from JSON in order to assign it to titleState
this.setState({ titleState: jsonResponse["title"] });
}
render() {
return (
<div>
<ChildComponent title={this.state.titleState} />
</div>
);
}
}
class ChildComponent extends React.Component {
render() {
return (
<div>
<h>Title is: {this.props.title}</h>
</div>
);
}
}
让我们假设带有标题的服务器响应带有明显的延迟,因此一开始我们在屏幕上看到的是:
Title is:
但是当响应带有 jsonResponse["title"] 值时:"Bone Collector" 我们看到:
Title is: Bone Collector
现在的问题是:
是否保证父组件的状态改变会导致子组件被重新渲染,从而通过 props 用新的父组件的状态更新?
【问题讨论】:
-
请查看答案并向那些回答您为什么认为他们错了的人解释。谢谢。
-
以下答案仅适用于初始状态更改,但以后在任何情况下或事件中,如果父更新的状态比子更新不会重新渲染。
标签: javascript reactjs