即使有很多相同主题的问题,我仍然无法得到我的问题的答案。
问题:
我有一个选择下拉框。 点击后,我调用一个API来获取一些关键值。 我将这组键值输入字段视为组件。 因此,每次更改我的选择下拉菜单时,我都使用生命周期方法来处理API调用。 此外,我记录这些输入关键值并将其状态发送回父组件。
根据ReactJS生命周期方法:
我使用
componentDidMount 在初始渲染后第一次调用API。 这个可以工作。
componentDidUpdate 对于随后的API调用,选择下拉框发生更改。 但是问题在于:当我尝试更新输入字段的状态时,程序会陷入无限循环,因此会有无限的API调用。 经过调试,我非常确定问题出在setState()上,但我找不到在componentDidUpdate方法中处理状态的最佳方法。
这个链接完全复制了我的问题,但我想要一个标准化的解决方案。
希望这个清楚明了。 非常感谢您的帮助!
问题:
我有一个选择下拉框。 点击后,我调用一个API来获取一些关键值。 我将这组键值输入字段视为组件。 因此,每次更改我的选择下拉菜单时,我都使用生命周期方法来处理API调用。 此外,我记录这些输入关键值并将其状态发送回父组件。
根据ReactJS生命周期方法:
我使用
componentDidMount 在初始渲染后第一次调用API。 这个可以工作。
componentDidUpdate 对于随后的API调用,选择下拉框发生更改。 但是问题在于:当我尝试更新输入字段的状态时,程序会陷入无限循环,因此会有无限的API调用。 经过调试,我非常确定问题出在setState()上,但我找不到在componentDidUpdate方法中处理状态的最佳方法。
这个链接完全复制了我的问题,但我想要一个标准化的解决方案。
希望这个清楚明了。 非常感谢您的帮助!
componentDidUpdate() { if (this.state.timer === 0) { clearInterval(this.interval); this.setState({ resendColor: '#257bd1', // disable: false, }); } }
。 - Oliver D