Nextjs 和 Redux 的存储类型
Store typing for Nextjs and Redux
真的找不到 Nextjs 和 Redux with Typescript 的好例子。认为将我的 create-react-app 应用程序移植到 Nextjs 会很容易感觉我错了已经从 nextjs 示例 repo 中检查了所有可能的示例但找不到最终有效的最佳示例。
这是错误
Property 'store' does not exist on type 'Readonly<AppInitialProps & { Component: NextComponentType<NextPageContext, any, {}>; router: Router; }> & Readonly<...>'.ts(2339)
这是我的自定义应用程序
import React from 'react'
import App from 'next/app'
import {Provider} from 'react-redux'
import withRedux from 'next-redux-wrapper'
import {initStore} from '../redux/store'
export default withRedux(initStore)(class MyApp extends App {
static async getInitialProps({Component, ctx}) {
let pageProps = {}
if(Component.getInitialProps) {
pageProps = await Component.getInitialProps({ctx})
}
return {pageProps}
}
render() {
const {Component, pageProps, store} = this.props
return (
<Provider store={store}>
<Component {...pageProps}/>
</Provider>
)
}
})
感觉好傻,终于搞定了
import { Store } from 'redux'
interface Props {
store: Store;
}
真的找不到 Nextjs 和 Redux with Typescript 的好例子。认为将我的 create-react-app 应用程序移植到 Nextjs 会很容易感觉我错了已经从 nextjs 示例 repo 中检查了所有可能的示例但找不到最终有效的最佳示例。
这是错误
Property 'store' does not exist on type 'Readonly<AppInitialProps & { Component: NextComponentType<NextPageContext, any, {}>; router: Router; }> & Readonly<...>'.ts(2339)
这是我的自定义应用程序
import React from 'react'
import App from 'next/app'
import {Provider} from 'react-redux'
import withRedux from 'next-redux-wrapper'
import {initStore} from '../redux/store'
export default withRedux(initStore)(class MyApp extends App {
static async getInitialProps({Component, ctx}) {
let pageProps = {}
if(Component.getInitialProps) {
pageProps = await Component.getInitialProps({ctx})
}
return {pageProps}
}
render() {
const {Component, pageProps, store} = this.props
return (
<Provider store={store}>
<Component {...pageProps}/>
</Provider>
)
}
})
感觉好傻,终于搞定了
import { Store } from 'redux'
interface Props {
store: Store;
}