首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >子组件的NextJS SSR

子组件的NextJS SSR
EN

Stack Overflow用户
提问于 2020-11-18 19:27:15
回答 1查看 440关注 0票数 0

我使用的是next js,所以我可以为这个组件呈现的页面获取SSR。问题是我有一个名为的组件,它是通过迭代API的结果来呈现的。问题是从这个组件呈现的内容没有出现在DOM上。我怎样才能让内容出现在DOM上?

代码语言:javascript
复制
/** @jsx jsx */
import { jsx } from 'theme-ui';
import { GetServerSideProps } from 'next';
import EntryComponent from 'src/components/hiphopleage/entry.component';
import { useEffect, useState } from 'react';
import { IPlaylist, IPlaylistItem, IProjectTrack } from 'src/_models/music.model';
import { uniqueId } from "lodash";
import { IPlayerItem } from 'src/_models/player.model';

const ViewLeagueComponent = (props) => {
   const [League, setLeague] = useState<IPlaylist>();
   const [Tracks, setTracks] = useState<IPlaylistItem[]>();
   const { PlayerState, dispatchPlayer } = useContext(PlayerContext);

   useEffect(() => {
     if (props.xleague.data) {
        setLeague(props.xleague.data.playlists[0]);
        setTracks(props.xleague.data.playlistSongs);
     }
   }, [props])


   return (
    <div sx={{ variant: "center", placeItems: "start center" }} className="col-12">
        <div className="col-12 col-md-10 py-3">
            {Tracks && Tracks.map((x: IPlaylistItem, i: number) => <EntryComponent entry={x} index={i} key={uniqueId()} />)}
        </div>
    </div>
)
}

export default ViewLeagueComponent;

export const getServerSideProps: GetServerSideProps = async (ctx) => {
const league = await fetch(`${API_URL}/music/playlists?category=league`);
const xleague = await league.json();

return {
    props: {
        xleague
    }
}

}

EN

回答 1

Stack Overflow用户

发布于 2020-11-22 07:51:47

假设这不是一个页面组件(在/pages中)。

getStaticProps和getStaticPaths只能用于页面组件本身,而不能用于普通组件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64892172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档