Javascript 扩展运算符与 return 一起使用

Javascript Spread Operator used with return

我对此处如何使用展开运算符感到困惑。我对传播运算符的工作原理有基本的了解,但我对传播运算符指的是什么、如何使用它以及它提供什么感到困惑。 “userCanDecline”const 是从上述调用中检索到的布尔值。如果我可以提供有关我共享内容的更多信息,请告诉我。

return [
                ...(userCanDecline
                    ? [
                          {
                              label: 'Decline Draw',
                              icon: 'ban',
                              action: () => (el, ev) => {
                                  Service.decline(this.onCloseView);
                              },
                          },
                      ]
                    : [])

当对象或数组中的所有元素都需要包含在某种列表中时,可以使用扩展语法。

let arr1 = [0, 1, 2];
const arr2 = [3, 4, 5];
arr1 = [...arr1, ...arr2];

在你的问题中,发生的事情是检查 userCanDeclined 的值是否为真,如果是,return 一个数组,下面的数组在其中展开(它的值复制到新的 returned数组)

 [
  { 
    label: 'Decline Draw',
    icon: 'ban',
    action: () => (el, ev) => {
           Service.decline(this.onCloseView);
        },
   }
  ]

否则,如果为假,则传播或复制一个空数组

  []