0

我正在使用 next-redux-wrapper,我得到以下 2 种类型错误。有人遇到过这个问题,你是怎么解决的?除此之外,代码正在运行,我可以在我的 redux-devtools-extension 中看到我的状态。谢谢

import { useSelector } from "react-redux";

import Layout from "../components/Layout";
import { getProjects } from "../redux/actions/projectActions";
import { wrapper } from "../redux/store";

const Redux = () => {

// Warning 1: Property 'allProjects' does not exist on type 'DefaultRootState'.ts(2339)

  const { projects } = useSelector((state) => state.allProjects);
  console.log("res", projects);

  return (
    <Layout>
      <h1>Redux</h1>
    </Layout>
  );
};

export const getServerSideProps = 

// Warning 2: Type '({ req }: GetServerSidePropsContext<ParsedUrlQuery>) => Promise<void>' is not assignable to type 'GetServerSideProps<any, ParsedUrlQuery>'.
  Type 'Promise<void>' is not assignable to type 'Promise<GetServerSidePropsResult<any>>'.
    Type 'void' is not assignable to type 'GetServerSidePropsResult<any>'.ts(2322)

wrapper.getServerSideProps(
  (store) =>
    async ({ req }) => {
      (await store.dispatch(getProjects(req))) as any;
    }
);

export default Redux;


4

1 回答 1

0

我在下面做了,ts警告消失了

我不确定它是否正确,但到目前为止似乎还可以

import { RootStateOrAny, useSelector } from "react-redux";

import Layout from "../components/Layout";
import { getProjects } from "../redux/actions/projectActions";
import { wrapper } from "../redux/store";

const Redux = () => {
  const { projects } = useSelector(
    (state: RootStateOrAny) => state.allProjects
  );
  console.log("res", projects);

  return (
    <Layout>
      <h1>Redux</h1>
    </Layout>
  );
};

export const getServerSideProps = wrapper.getServerSideProps(
  (store) =>
    async ({ req }) => {
      await store.dispatch(getProjects(req));
      return {
        props: {},
      };
    }
);

export default Redux;
于 2021-06-29T14:39:41.110 回答