Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RTK Query and Next 13 app dir / React Server components: status and discussion #3508

Open
markerikson opened this issue Jun 7, 2023 · 8 comments
Labels
Milestone

Comments

@markerikson
Copy link
Collaborator

We're getting a lot of questions about whether RTK Query works with RSCs.

Quoting Lenz at https://twitter.com/phry/status/1666553972075687938 :

There's a lot of nuance. In client components, it effectively already works, but not for SSR. In RSC, it's probably not a particularly useful/good idea. In Client component SSR we need support for two things: streaming SSR data transport and a good suspense story.

Of those last two things, the first right now can only be solved in a very unsatisfying way with a Next-specific api. The latter would probably build on top of use, but it would be a "temporary" api design until React would add use support for observables (if they ever do).

We're also looking at tweaking RTKQ + React-Redux to not throw errors related to calling createContext in an RSC environment.

@markerikson markerikson added this to the 2.0 milestone Jun 7, 2023
@markerikson markerikson pinned this issue Jun 7, 2023
@markerikson
Copy link
Collaborator Author

General notes:

@EvHaus
Copy link

EvHaus commented Sep 14, 2023

@markerikson I'm having issues with getting Redux state hydration working in Next 13. My strategy from Next 12 & pages router doesn't work with the app router. And the with-redux doesn't include a hydration example.

Are you aware of this already? If not -- should I open a new issues to dig into this further, or would you prefer a comment in this ticket instead?

@markerikson
Copy link
Collaborator Author

@EvHaus : per this thread, we generally don't have any specific support for the App Router + Redux stuff atm, beyond "if you intend to use Redux on the client side, make sure to render <Provider> in a client component".

What are you actually trying to accomplish?

@EvHaus
Copy link

EvHaus commented Sep 14, 2023

I want the server to fetch data from a database and return it to the client along with the SSR HTML so that Redux state can be hydrated on the client without the client needing to make its own additional fetches. Very similar to what https://github.com/kirill-konshin/next-redux-wrapper is doing.

@markerikson
Copy link
Collaborator Author

Yeah, we have no actual answer for that with the App Router right now, largely due to the lack of API features needed to make that even possible. See Lenz's article here for some more details:

@phryneas can maybe chime in more, but right now that's not feasible as far as I know.

@markerikson markerikson modified the milestones: 2.0, Post 2.0 Oct 1, 2023
@markerikson
Copy link
Collaborator Author

Note that we now have official docs on how to set up Redux with Next.js and the App Router correctly:

@browynlouis
Copy link

Thanks for the documentation..it was really needed.
Although there's a statement there that says

only use Redux for globally shared, mutable data

I do plan to use Redux for global data, but probably not mutable.

For example, when my application loads, I plan to fetch the app settings and store the data in the redux store so I can have it readily accessible for client components usage.

What's your take on this please ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants