更新具有相同值的多个状态

时间:2018-03-22 12:16:26

标签: reactjs typescript

当我选中复选框时,我想更新多个状态意味着useSameInfo为真。

例如,如果fieldName为assignFirstName,那么我也希望使用此值更新billFirstName

updateValue = (fieldName, event) => {
    event.preventDefault();
    if (this.state.useSameInfo) {
      if (fieldName === 'assignFirstName') {
        // update billFirstName state also
      } else if (fieldName === 'assignLastName') {
        // update billLastName state also
      }
    }
    this.setState({
      [fieldName]: event.target.value,
    });
    console.log(this.state);
};

我应该在评论的那一行写下什么。

1 个答案:

答案 0 :(得分:1)

您可以在调用setState

之前使用对象并相应地填充它
updateValue = (fieldName, event) => {
  event.preventDefault();
  const updates = {
    [fieldName]: event.target.value
  };
  if (this.state.useSameInfo) {
    if (fieldName === 'assignFirstName') {
      updates.billFirstName = event.target.value;
    } else if (fieldName === 'assignLastName') {
      updates.billLastName = event.target.value;
    }
  }
  this.setState(updates);
  console.log(this.state);
};