这种东西的最佳实践是什么?
handleChange = e => {
const { value } = e.target;
this.setState({ selectedOption: value });
this.fetchrepos(value);
};
handleChangeVersion2 = e => {
const { value } = e.target;
this.setState({ selectedOption: value }, () => {
this.fetchrepos(this.state.selectedOption);
});
};
最佳答案
都没有。每个功能都应该有一个明确定义的目标(Single Responsibility Principle)。一个处理状态变化,另一个处理数据获取等副作用。您不应该将行为耦合在一起。
您应该使用组件生命周期函数之一来获取状态中的选择值更新并进行数据获取。 componentDidUpdate
就是其中之一。
handleChange = e => {
const { value } = e.target;
this.setState({ selectedOption: value });
};
componentDidUpdate(prevState) {
if (prevState.selectedOption !== this.state.selectedOption) {
fetchRepos(this.state.selectedOption);
}
}
关于javascript - 在 React 中,在下拉列表中进行提取时我应该依赖哪个值? e.target 值或来自状态的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59701170/