I have:
const { state: { mode } } = this
console.log(mode) //'mode'
console.log(state) //undefined
I want to declare the state
variable as well.
Is there a way to destructure this without breaking it into two statements?
const { state } = this
const { mode } = state
Sure, just use a comma as if you were destructing another property of the parent object:
Note that this looks very similar to, but is not the same as the following
import
syntax you may have seen:Here, the variables in brackets are named exports, while the plain variable is the default export, which is entirely different from nested objects.
You can destructure the
state
to a variable as well:While all the other answer here suggested a word around to get values, but i am adding this answer to explain why we getting only the deep most nested value
When you do nested destructing you will be complied to something like this
It is not creating a separate variable for each of the property,