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;
}