【问题标题】:Error when trying to use Destructuring as function parameters尝试使用解构作为函数参数时出错
【发布时间】:2020-05-18 14:18:28
【问题描述】:

我正在尝试学习如何使用解构作为参数。 我有以下代码

  const states = {
    selected: '-selected',
    excluded: '-excluded',
    notSelected: '-notSelected'
  }


  function showSelected({selected}) {
    alert(selected);
  }

 showSelected(); //Cannot destructure property 'selected' of 'undefined' as it is undefined.

问题是当我调用该函数时出现此错误:

'无法解构'undefined'的属性'selected',因为它是未定义的。'

但是选择变量的值是存在的,如果我做类似console.log(states.selected)的事情,我就会得到正确的值

我在这里缺少什么?

JSfiddle 我的代码: https://jsfiddle.net/db97z3uk/

【问题讨论】:

    标签: javascript ecmascript-6


    【解决方案1】:

    你没有传递参数:

    showSelected(states);
    

    因此,如果没有参数,您将使用 undefined 进行解构。

    如果您希望它与在函数范围之外定义的变量一起使用,您需要这样做:

      function showSelected({selected} = states) {
        alert(selected);
      }
      showSelected()
    

    现在,没有参数,它将从状态中得到默认选择值。

    【讨论】:

      【解决方案2】:

      我们您调用showSelected() 并且不发送任何参数,您将undefined 作为参数发送并从undefined 获取selected 创建错误。 你可以这样调用:

      showSelected({})
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-23
        • 2019-04-05
        • 2018-09-27
        • 1970-01-01
        • 1970-01-01
        • 2023-02-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多