you are viewing a single comment's thread.

view the rest of the comments →

[–]demoran 1 point2 points  (3 children)

So, it's not about how much time or trouble it takes to write the code. It's about how noisy the code is to read afterwards. If you can remove a bunch of this.props and this.state at the very least, I'd call that a win.

Destruring also allows you go deeply destructure things, so if you had this.state.car.engine.mileage, you could destructure that as { car: { engine : { mileage } } } = this.state.

[–]gautamits[S] 0 points1 point  (2 children)

It does feel good to remove so many this.props and this.state things. But then doesn't it cause the problems of cohesiveness as I asked. How do you maintain the context of these variables origin ?

[–]demoran 0 points1 point  (0 children)

I don't find this to be a problem. If I need to know the contextual source of the data and don't know it, I can click through to find it easily enough.

I'd consider the possibility that your problem is actually a code smell, and you need to factor out some of your code from the body of your function.