developit / preact-redux

:loop: Preact integration for Redux (no shim needed!)
https://npm.im/preact-redux
MIT License
288 stars 27 forks source link

preact-redux 2.1.0 not working with preact-router when passing route values #47

Open thecodefool opened 5 years ago

thecodefool commented 5 years ago

First I would like to note: PREACT is fantastic, that is why we have put forth great effort to continue using it.

Our app is now lightning fast due to the great work at PREACT, PREACT-REDUX and the PREACT-CLI – keep it up!!.

We had a very similar issue to this so we decided to post an example hoping that the owners of PREACT-REDUX will see it clearly, and have a fast path to remedy.

First I created the “brandnew” app (brandnew.zip) (using preact-cli version 2.2.1)

I then created a simple example that would work, DemoIssue and AnotherComponent are the two components that should display what is given in the route parameters when the links Demo 1 or Demo 2 are clicked.

Alas it works :)

Then I added redux to the mix

This installs preact-redux: “^2.1.0

I then added a simple example of wiring up to redux (Nothing fancy, just a counter to prove it works).

Alas it is broken, hmmmm?

At this point in the app, I could comment out the redux connect in demo-issue.js and simply use the “export default DemoIssue” and it would still work, however we really need redux…

After trial and error we figured out that if we revert to preact-redux 2.0.3 – NOT preact-redux ^2.0.3 – the app works as expected!!!.

Now that we have gone back to 2.0.3 you can safely remove preact-context as it is no longer a dependency.

Hope that helps in figuring out what is really wrong.

developit commented 4 years ago

Thanks for the bug report! It looks like we must have merged an upstream react-redux change that broke this.

Here's a reproduction on CodeSandbox: https://codesandbox.io/s/preact-redux-47-2kkon

developit commented 4 years ago

For those running into this issue: using the official react-redux bindings v5.1.0 (specifically) via preact-compat works fine with Preact 8.x.

For Preact X, any version of the official bindings should work.