nextjs 中 getServerSideProps 中的 next-redux-wrapper

next-redux-wrapper in getServerSideProps in nextjs

我正在尝试调用 getServerSideProps 中的一个动作函数。我正在使用打字稿。

其实在javascript我就这么用-

import { wrapper } from "Redux/store";
import { getVideo } from "Redux/Actions/videoAction";
//Serversider data fatching
export const getServerSideProps = wrapper.getServerSideProps(
  (store) =>
    async (context) => {
      await store.dispatch(getVideo());
    }
)

但是当我尝试在打字稿中使用它时,我遇到了一些问题。我可以解决一些,但一个不理解。

export const getServerSideProps = wrapper.getServerSideProps(
  (store) =>
    async (context) => {
      await store.dispatch(getNews() as any);
    }
)

这里我使用了getNews() as any类型。我不能说这是对还是错!

我的主要问题是上下文和异步函数-

我实际上发现了这个错误-

错误解释得很清楚:你必须returnPromise<GetServerSidePropsResult<any>>

在您当前的函数中,您没有 returning 任何东西。如果你注释 getSerververSideProps:

import { GetServerSideProps } from "next";

export const getServerSideProps: GetServerSideProps =
  wrapper.getServerSideProps(async (context) => {}

如果您将鼠标悬停在 GetServerSideProps 上,它的类型定义

(alias) type GetServerSideProps<P extends { [key: string]: any; } = { 
  [key: string]: any; }, Q extends ParsedUrlQuery = ParsedUrlQuery> =
  (context: GetServerSidePropsContext<Q>) Promise<GetServerSidePropsResult<P>>

只需添加return语句

return { props: { id: null } };