如果事件重复发生,我不想重新呈现数据

时间:2019-02-12 09:27:41

标签: reactjs

我有一个由一个值组成的下拉菜单。如果第二次在下拉菜单中选择了相同的值,则我不想再次呈现该页面。

form = (
    onChange={(e) => this.onP(e)}/>
);

onP = (event) => {
    this.setState({
    selectedItem: event.value
});

如果我再次选择相同的下拉列表,则无论已写入(以表格形式)的数据都应保持不变

2 个答案:

答案 0 :(得分:1)

您可以在更新组件状态之前检查selectedItem的值:

if (this.state.selectedItem !== event.value) {
    this.setState({selectedItem: event.value});
}

答案 1 :(得分:0)

如果我很好地理解了您的问题,那么您想根据先前的值来更新状态,如果尝试执行此类操作,React建议使用setState的回调API。

onP = (event) => {
    this.setState(prevState => {
     if(prevState.selectedItem !== event.value){
         return {selectedItem: event.value}
     }
});