React 引入了新的静态方法getDerivedStateFromProps(props, state),它在每个渲染方法之前调用,但为什么呢?在props更改后调用它对我来说很有意义,但在setState它没有之后,也许我错过了一些东西。
我datePicker根据我公司的要求创建了一个组件,组件日期由props控制。我在组件中有以下状态。
selectedDate: number;
selectedMonth: number;
selectedYear: number;
currentMonth: number;
currentYear: number;
view: string;
selected 表示选定的日期,该日期源自 date 属性,currentMonth并currentYear表示当前日历视图中的月份和年份。
如果datefrom prop 发生变化selected*,currentMonth也currentYear应该相应地改变。为此,我正在使用getDerivedStateFromProps但假设用户单击月份名称将日历视图切换为月份(而不是显示月份的日期名称),该函数currentMonth使用 setState更新此日期,但日期props与之前(包含上个月)应该,但是getDerivedStateFromProps被调用并且 currentMonth 再次与之前相同而不是改变。
是的,我创建了一个额外的变量state来跟踪是否getDerivedStateFromProps被调用,setState但我认为这不是正确的方法。
要么我做错了什么,要么遗漏了什么,或者getDerivedStateFromProps不应该在setState. 可能我做错了什么。

