componentWillReceiveProps

componentWillReceiveProps

我正在使用React开发一个网页,并对"Lifting Stat Up"示例有一些疑问(并且我粘贴了该链接的完整代码here以供快速参考),这与我在自己的项目中遇到的内容不一致。我的问题是关于这部分的: <TemperatureInput scale="c" temperature={celsius} onTemperatureChange={this.handleCelsiusChange} />当用户输入新值时,将重新计算celsius(由TemperatureInput中的调用handleCelsiusChange的回调函数触发,然后触发render),并作为props之一传递给。但是在TemperatureInput的定义内,为什么未定义TemperatureInput?在我的实践中,如果componentWillReceiveProps仅在构造函数中分配,则值更改后不会自动更新。如文档所述,它将不会创建新元素,而只会更新现有元素以提高性能。如果没有创建新实例,则不会调用构造函数,因此如果没有props函数,则不会更新this.props。以上所有这些与我的做法一致,但与示例不符。为什么在示例中不需要componentWillReceiveProps来更新componentWillReceiveProps? 最佳答案 在这种情况下,constructor对props并没有做任何特殊的事情,它只是用React.Component调用super()构造函数,这是它无论如何都会做的。例如,如果它正在设置道具的某些状态,那么您将需要componentWillReceiveProps,因为当道具更改时,您将需要更新状态。当组件获得新的道具时,不会再调用构造函数,因为它已经是实例,而是react在组件实例上更新道具,并再次调用render(),因此render()中的道具将被更新。道具。如果定义了componentWillReceiveProps,则会在调用render()之前调用它;否则,将在调用之前调用它。关于javascript - 为什么在React的“提升状态”示例中不需要“componentWillReceiveProps”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47671122/
10-11 12:40