Согласно вашему обновленному вопросу, вы должны просто сделать:
aTest() {
const { shouldToggle, timerId } = this.state
if (shouldToggle) {
this.setState({ activeTabKey: 'hello' })
} else {
clearInterval(timerId)
}
}
Продолжая предыдущую попытку:
if (({ cat } = animals) === "brown")) {
console.log("The cat is brown");
};
Никогда не будет удовлетворять условию.
Когда вы присваиваете переменную с использованием синтаксиса деструктуризации, она сравнивается с самим объектом.Позвольте мне уточнить вас с помощью простых тестов:
if(({test} = {test:13})==13) {
console.log(test); // will not be logged
}
if(({test} = {test:13})==undefined) {
console.log(test); // will not be logged
}
if(({test} = {test:13})==true) {
console.log(test); // will not be logged
}
if(({test} = {test:13})==false) {
console.log(test);
}
if(JSON.stringify(({test} = {test:13})) == JSON.stringify({test:13}) ) {
console.log(test); // now, this will be logged
}
Итак, вы сравниваете brown == { cat: 'brown', dog: 'white' }
, который никогда не удовлетворит.
То, что вы должны сделать, - это назначить их в переменнойиспользуя синтаксис деструктуризации согласно ESLINT,
const { cat } = animals
if(cat === 'brown') { // Okay