在React的getDerivedStateFromProps中有多个条件

时间:2019-02-22 12:08:15

标签: reactjs

在我的React应用程序中,我有以下代码。

state = {
   credentialDeletion: false,
   accountDeletion: false
}

static getDerivedStateFromProps(nextProps) {
   if (nextProps.accountDeleting) {
      return {
         accountDeletion: true
      }
   }

   if (nextProps.credentialDeletion) {
      return {
         credentialDeletion: true
      }
   }

   return null;
}

但是此代码无法正常工作。如果我删除一个条件,则其他条件正常。但是在一起,只有第一个条件起作用。我应该如何正确编写此代码?

1 个答案:

答案 0 :(得分:2)

您可以创建一个对象,并在每个if语句中添加属性,然后返回该对象,以便两个if语句都将运行。

static getDerivedStateFromProps(nextProps) {
  const update = {};

  if (nextProps.accountDeleting) {
    update.accountDeletion = true;
  }
  if (nextProps.credentialDeletion) {
    update.credentialDeletion = true;
  }

  return update;
}