Javascript 我应该使用什么生命周期方法来侦听状态的更改并相应地更新react类组件中的其他状态

Javascript 我应该使用什么生命周期方法来侦听状态的更改并相应地更新react类组件中的其他状态,javascript,reactjs,Javascript,Reactjs,我正在开发一个应用程序,它有一个数据数组,用户选择时间跨度,如每月,每周等,根据该数组应在屏幕上呈现。我尝试在组件willupdate中执行此操作,但我不确定。但它给了我错误 有一个下拉列表,用户从中选择timespan值。我不知道应该把它放在哪里,这样它就可以在timeSpan 任何帮助都会很好 这是我的密码 if (this.state.timeSpan === "yearly") { const yearlyData = this.props.dispens

我正在开发一个应用程序,它有一个数据数组,用户选择时间跨度,如
每月
每周
等,根据该数组应在屏幕上呈现。我尝试在
组件willupdate
中执行此操作,但我不确定。但它给了我错误

有一个下拉列表,用户从中选择
timespan
值。我不知道应该把它放在哪里,这样它就可以在
timeSpan
任何帮助都会很好

这是我的密码

if (this.state.timeSpan === "yearly") {
      const yearlyData = this.props.dispensingData.duration["yearly"];
      this.setState({ spanData: yearlyData });
    } else if (this.state.timeSpan === "weekly") {
      const weeklyData = this.props.dispensingData.duration["weekly"];
      this.setState({ spanData: weeklyData });
    } 

您可以使用componentDidUpdate方法(此处的文档:)


您不需要使用
setState
从道具中拾取特定的关键点。对于用户输入的数据,应使用
setState

const {timeSpan} = this.state;
let data;
if (timeSpan === "yearly" || timeSpan === "weekly") {
    data = this.props.dispensingData.duration[timeSpan];
}

例如,您的渲染功能应该足以满足此用例。

这里我需要将时间跨度与
每周的
每月的
进行比较
const {timeSpan} = this.state;
let data;
if (timeSpan === "yearly" || timeSpan === "weekly") {
    data = this.props.dispensingData.duration[timeSpan];
}