V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
hugepizza
V2EX  ›  问与答

nextjs13 中的 rsc 如何接受一个 client 组件的值做为参数?

  •  
  •   hugepizza · Oct 9, 2023 · 731 views
    This topic created in 941 days ago, the information mentioned may be changed or developed.

    遇到了这样一个问题,页面中有一个组件,包含一个 tab 和一个列表。

    tab 要保存当前选中 tab 所以用了 useState ,只能作为一个客户端组件。

    我希望列表可以封装成一个服务端组件,但请求列表的参数我只能硬编码在组件内,没找到办法在 client 组件变更 status 时将变更值传递给服务端组件来触发请求新数据并渲染组件返回。

    效果类似于 tmdb 中 imdb 中的 trending 的滑动列表,每次点击切换日期范围时,tmdb 都会去请求一个 html 替换掉当前列表,而不是请求列表接口再 js 替换 dom 。

    有大佬知道怎么处理吗。

    3 replies    2023-10-09 23:43:34 +08:00
    zy0829
        1
    zy0829  
       Oct 9, 2023
    列表用动态路由呢 [list], 这样变更客户端 tab 组件时候参数可以通过 url 传递
    hugepizza
        2
    hugepizza  
    OP
       Oct 9, 2023
    @zy0829 所有的组件都是共享一个 url 的吗 如果我页面有十几个 list 要有不同状态咋整,next 新手 实在没头绪
    hugepizza
        3
    hugepizza  
    OP
       Oct 9, 2023 via iPhone
    这样如果我有多个 list 那导航里的 url 就没法看了而且刷页面体验也不好
    最后还是 rsc 一次性把多个 tab 的数据都请求了 然后分成多个 rsc 的 list 给 client component 用 state 来挑一个来渲染
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5934 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 03:38 · PVG 11:38 · LAX 20:38 · JFK 23:38
    ♥ Do have faith in what you're doing.