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 } };
我正在尝试调用 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 } };