显然我对这里的基本原则缺乏理解。
我在我的 parentServerComponent 中做了这样的事情:
parentServerComponent.js:
// some logic and data fetching happening here
return (
<childClientComponent1 />
<childClientComponent2 />
)
这个想法是:
1.在 childClientComponent1 中,用户选择了一个我想发送给父节点的Id。
1.在 parentServerComponent 中,我想获取给定Id的对象
1.在 parentServerComponent 中,我想将获取的对象作为属性传递给 childClientComponent2
来自VueJS,我首先想到的是用所选的Id从child到parent发出一个事件,但这种模式似乎在React中不存在。我试图从 parentServerComponent 传递一个回调函数到 childClientComponent1,这是不允许的:“函数不能直接传递给客户端组件,因为它们不可序列化”
nextjs 13测试版文档中阅读应该尽可能使用服务器组件,并且数据获取应该在服务器组件中完成。
但我怎么才能做到呢?
1条答案
按热度按时间eaf3rand1#
以下是我做错的地方:我在考虑使用单页应用程序,而不是使用
<Link>
和React Router在页面之间进行导航。我需要导航到目标URL路由(/object/[id]),这会触发对服务器上的服务器page.tsx组件的新请求,在那里我可以获取[id]的对象并将其传递给 * childClientComponent 2 *,而不是将所选ID从 * childClientComponent 1 * 传递回客户端上的 * parentServerComponent *。