fix: make AppType generic props accessible at top level instead of pageProps#92962
Open
Jah-yee wants to merge 1 commit intovercel:canaryfrom
Open
fix: make AppType generic props accessible at top level instead of pageProps#92962Jah-yee wants to merge 1 commit intovercel:canaryfrom
Jah-yee wants to merge 1 commit intovercel:canaryfrom
Conversation
When using AppType<MyInitialProps>, the custom props defined in
MyInitialProps should be accessible as top-level props on the App
component, not nested inside pageProps.
Before this fix:
AppType<{ foo: string }> → foo only accessible via pageProps.foo
After this fix:
AppType<{ foo: string }> → foo accessible directly as a prop
Fixes vercel#42846
Contributor
|
Allow CI Workflow Run
Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer |
| export type AppInitialProps<PageProps = any> = { | ||
| pageProps: PageProps | ||
| export type AppInitialProps<PageProps = any> = PageProps & { | ||
| pageProps: any |
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Good day
Problem
When using
AppType<MyInitialProps>with a custom type parameter, the custom props were only accessible viapageProps.propNameinstead of as top-level props on the App component.From issue #42846:
Before the fix
After the fix
Solution
Changed
AppInitialPropsto spread thePagePropsgeneric at the top level:export type AppInitialProps<PageProps = any> = { - pageProps: PageProps + PageProps & { + pageProps: any + } }This ensures that when a user provides custom props via
AppType<CustomProps>, those props are available directly on the App component's props, consistent with how Next.js actually passes props at runtime.Testing
pagePropsproperty for accessing page-level propsfooin the example) to be accessed directly as top-level propsThank you for your attention. If there are any issues or suggestions, please leave a comment and I will address them promptly.
Warmly,
RoomWithOutRoof