Reactjs 带有getStaticProps和typescript的空对象
我试图获取一些数据,通过文档的,它似乎必须通过getStaticProps,但我一直得到一个空的对象,当记录我的组件内的道具 如果你知道为什么请随时告诉我 这是我的_app.tsxReactjs 带有getStaticProps和typescript的空对象,reactjs,next.js,Reactjs,Next.js,我试图获取一些数据,通过文档的,它似乎必须通过getStaticProps,但我一直得到一个空的对象,当记录我的组件内的道具 如果你知道为什么请随时告诉我 这是我的_app.tsx const Child:React.FC = ({ children }) => { const isDark = useSelector<ThemeState, ThemeState["isDark"]>(state => state.isDark)
const Child:React.FC = ({ children }) => {
const isDark = useSelector<ThemeState, ThemeState["isDark"]>(state => state.isDark)
return <div className={`${isDark ? "dark blackThemeColor test" : "white whiteThemeColor"}` + " min-h-screen font-body pr-0"} style={{height:'150vh'}}>{children}</div>;
}
const MyApp = ({ Component, pageProps }: AppProps) => {
return (
<Provider store={ThemeStore}>
<Application theme={theme}>
<Child>
<Navigation {...pageProps} />
<Component {...pageProps} />
</Child>
</Application>
</Provider>
);
};
export default MyApp
const Child:React.FC=({children})=>{
const isDark=useSelector(state=>state.isDark)
返回{children};
}
常量MyApp=({Component,pageProps}:AppProps)=>{
返回(
);
};
导出默认MyApp
和my navigation.tsx
interface NavProps {
title: string;
body: string;
id: number;
userId: number
}
const Navigation: React.FC<NavProps> = (props: NavProps) => {
useEffect(() => {
console.log(props)
}, [])
console.log(props)
return (
<>
<div className={`w-full h-full `}>
<p>{props.title}</p>
</div>
</>
)
}
export default Navigation
export const getStaticProps: GetStaticProps = async (context) => {
const res = await fetch("https://jsonplaceholder.typicode.com/posts?_limit=6")
const data: NavProps = await res.json();
console.log(data)
return {
props: {
data
}
}
}
界面导航道具{
标题:字符串;
正文:字符串;
id:编号;
userId:number
}
常量导航:React.FC=(道具:导航道具)=>{
useffect(()=>{
控制台日志(道具)
}, [])
控制台日志(道具)
返回(
{props.title}
)
}
导出默认导航
导出常量getStaticProps:getStaticProps=async(上下文)=>{
const res=等待获取(“https://jsonplaceholder.typicode.com/posts?_limit=6")
const data:NavProps=await res.json();
console.log(数据)
返回{
道具:{
数据
}
}
}
根据您的评论,我认为导航.tsx
文件不在pages文件夹中。引述:
getStaticProps只能从页面导出。无法从非页面文件中导出它
因此,您必须将函数移动到要获取数据的页面/路径,或者在客户端执行该操作。导航是一种路径吗?或者问另一种方式,它是否在pages文件夹中?@Gh05d它只是一个React组件,我在所有页面中都使用它,这样它在更改页面时就不会重新加载。你是说我需要在我的_app.tsx中设置getstaticprops吗?就是这样,导航只是一个React组件,所以我可以直接在那里获取,因为它必须每15sYeah获取一次,你可以在客户端通过
useffect
hook来实现。