Reactjs 带有getStaticProps和typescript的空对象

Reactjs 带有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)

我试图获取一些数据,通过文档的,它似乎必须通过getStaticProps,但我一直得到一个空的对象,当记录我的组件内的道具

如果你知道为什么请随时告诉我

这是我的_app.tsx

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来实现。