首页 > 解决方案 > 在 React 的 getDerivedStateFromProps 中有多个条件

问题描述

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

state = {
   credentialDeletion: false,
   accountDeletion: false
}

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

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

   return null;
}

但是这段代码不能正常工作。如果我删除一个条件,那么另一个可以正常工作。但加在一起,只有第一个条件有效。我应该如何正确编写此代码?

标签: reactjs

解决方案


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

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

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

  return update;
}

推荐阅读