Oops I forgot do-expression don't use `return`, so something, a bit ugly,
like:
```js
return {
...state,
child: do {
const {child} = state;
({
...child,
subchild: do {
const {subchild} = child;
({
...subchild,
property: subchild.property + 1
});
}
});
}
}
```
On Fri, Sep 6, 2019 at 10:34 AM Cyril Auburtin <[email protected]>
wrote:
> You could currently do
> ```js
> object.child.property /= 5
> ```
>
> with destructuring:
> ```js
> const {child: {subchild}, child} = state;
>
> return {
> ...state,
> child: {
> ...child,
> subchild: {
> ...subchild,
> property: subchild.property + 1
> }
> }
> }
> ```
>
> or do-expressions:
> ```js
> return {
> ...state,
> child: do {
> const {child} = state;
> return {
> ...child,
> subchild: do {
> const {subchild} = child;
> return {
> ...subchild,
> property: subchild.property + 1
> };
> }
> };
> }
> }
> ```
>
> note: your `property: itself + 1` looks incorrect, since you probably mean
> to increment the `property` property
>
> On Fri, Sep 6, 2019 at 9:36 AM Imeian . <[email protected]> wrote:
>
>> When we need to change a value using the old value :
>>
>> variable = itself + 5 // instead of
>> variable = variable + 5
>>
>> object.child.property = itself / 5 // instead of
>> object.child.property = object.child.property / 5
>>
>> Changing a value in nested objects is a pain, like Redux states for eg.
>>
>> return {
>> ...state,
>> child: {
>> ...state.child,
>> subchild: {
>> ...state.child.subchild,
>> property: state.child.subchild.property + 1
>> }
>> }
>> }
>>
>> would then be
>>
>> return {
>> ...state,
>> child: {
>> ...itself,
>> subchild: {
>> ...itself,
>> property: itself + 1
>> }
>> }
>> }
>>
>>
>> _______________________________________________
>> es-discuss mailing list
>> [email protected]
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss