setState没有更新状态

时间:2018-02-27 10:09:57

标签: javascript reactjs ecmascript-6 reactive-programming

我已经在状态中创建了一个列表,当我想添加一些东西到列表时,我检查它的长度是否显示一个按钮它是否有效但是当我想从列表中删除某些内容时,if statement不能删除按钮。

this.state = {
  allTasks: []
}

这是我的addToList功能:

addToList() {
    if (this.state.inputValue === '') {
      this.setState({ invalidInput: 'ورودی شما خالی است، لطفا چک کنید !' });
      return;
    }
    this.setState({
      allTasks: [...this.state.allTasks, this.state.inputValue],
      inputValue: ''
    });

    if (this.state.allTasks.length > 0) {
      document.getElementById('removeAllTasksButton').style.display = 'block';
    } else {
      document.getElementById('removeAllTasksButton').style.display = 'none';
    }
}

这是removeFromList函数:

removeFromList(x) {
  this.setState({
    allTasks: this.state.allTasks.filter((e, i) => i !== x)
  });

  if (this.state.allTasks.length < 1) {
    document.getElementById('removeAllTasksButton').style.display = 'none';
  } else {
    document.getElementById('removeAllTasksButton').style.display = 'block';
  }
}

0 个答案:

没有答案