语句中不包含变形对象

问题描述 投票:0回答:1

我的代码如下所示旨在观察打开时的模态内容

const data = {
   modal: false,
   button: null
};

const updateData = () => {
   const {modal, button} = data

   if (document.querySelector('.modal')) {
       modal = true
       button = document.querySelector('.modalButton')
   }
};

调用updateData()时出现以下错误:

未捕获的ReferenceError:未定义模式”

它像这样写时可以正常工作:

const updateData = () => {

    if (document.querySelector('.modal')) {
        data.modal = true
        data.button = document.querySelector('.modalButton')
    }
};

我不明白为什么在if语句中无法访问解构数据。

javascript if-statement destructuring
1个回答
0
投票

我仍然不是100%地确定您要做什么,因为您通过分解变量来设置模态和按钮,然后不使用这些变量...

您可以执行以下操作:

const data = {
   modal: false,
   button: null
};

const updateData = () => {
   const {modal, button} = data

   if (true) {
     return {
       modal, button
     }
   }
};

console.log(updateData());

如果您要这样做,则无法使用解构的变量来更新解构后的对象的属性。

如果要更新data.modal,则必须执行data.modal = 'xx';

© www.soinside.com 2019 - 2024. All rights reserved.