国内用typescript写nextjs的资料太少了,最后还是在stackoverflow上找到的。先放结论:
import { NextPage, NextPageContext } from "next";
import axios from "axios";
interface IProps {
asyncData: { list: string[]; message: string[] };
}
const App: NextPage<IProps> = (props) => {
console.log(props);
return <div></div>;
};
// https://stackoverflow.com/questions/49929268/using-getinitialprops-in-next-js-with-typescript
App.getInitialProps = async (ctx: NextPageContext) => {
var res = await axios.get(
"https://www.fastmock.site/mock/82284d919a6d29b6d340f7f2af6fb31e/example/xiaojiejie"
);
var list = res.data.data;
var res = await axios.post(
"https://www.fastmock.site/mock/82284d919a6d29b6d340f7f2af6fb31e/example/apis/user/message.htm"
);
var message = res.data.data;
return { asyncData: { list, message } };
};
export default App;
要引入NextPage
来描述组件,引入NextPageContext
描述上下文对象。