babel-plugin-transform-react-to-vue icon indicating copy to clipboard operation
babel-plugin-transform-react-to-vue copied to clipboard

setState

Open blocka opened this issue 8 years ago • 2 comments

Current behavior is a naive conversion between this.setState and this.*. setState is more complicated then this, however.

  1. It takes a second argument which is a callback when the setState has been applied.
  2. It can take a function which takes the previous and current props and returns the next state.

Also in general the semantics are not 100% similar. If I'm not mistaken, this.setState doesn't even mutate the state right away, while obviously this.* does, just that the DOM updates get batched. I have no idea if this difference will be a cause of bugs...I guess time and lot's of testing will tell.

blocka avatar Jul 30 '17 04:07 blocka

And of course forgot to mention that react doesn't require the state be declared up front like in vue.

blocka avatar Jul 30 '17 05:07 blocka

@blocka, you're right, we'll increase the transpilation success rate with time but obviously it's impossible to make 100% compilant converter, however, if you could provide few examples where it's wrong we would be able to at least cover that cases, I'll try to implement setState callback for now.

nickmessing avatar Jul 30 '17 06:07 nickmessing