Разрушающее присвоение состояний с помощью логических операторов - PullRequest
0 голосов
/ 10 марта 2019

Вкл. this.state.keyboard ESLint выдает ошибку «Должно использоваться назначение состояния деструктурирования (реакция / деструктуризация-назначение)».

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

Конечно, я могу сделать что-то вроде:

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

Но есть ли способ сделать это в одну строку и использовать const? Спасибо.

1 Ответ

1 голос
/ 10 марта 2019

Я не думаю, что есть способ сделать это в одной строке с const и получить точно такое же поведение, как у вас, то есть назначить data[0] клавиатуре, если она ложная.

Если вы деструктурируете клавиатуру и задаете ей значение по умолчанию, например:

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

keyboard будет установлено на data[0], только если оно определено в this.state.И то же самое происходит с этим утверждением:

const { keyboard } = { keyboard: data[0], ...this.state };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...