使用逻辑运算符破坏状态分配

时间:2019-03-09 22:31:26

标签: javascript eslint

this.state.keyboard上,ESLint给我错误“必须使用解构状态分配(反应/解构分配)”。

const keyboard = this.state.keyboard || data[0];

当然,我可以做类似的事情:

let {keyboard} = this.state;
keyboard = keyboard || data[0]; 

但是有没有办法在一行中使用const来做到这一点? 谢谢。

1 个答案:

答案 0 :(得分:1)

我不认为有一种方法可以与const一起完成并获得与您完全相同的行为,即,将data[0]分配给键盘是假的。

如果您分解键盘并给它一个默认值,如下所示:

const { keyboard = data[0] } = this.state;

keyboard仅在data[0]中定义时才会设置为this.state。此语句也是如此:

const { keyboard } = { keyboard: data[0], ...this.state };