【发布时间】:2022-01-29 17:23:12
【问题描述】:
我有一个功能组件。基本上,该页面由一个表单组成 - 我需要将一些现有数据填充到表单中并让用户对其进行更新。
我正在使用我编写的一个钩子来处理表单。它的作用是这个
const [about, aboutInput] = useInput({
type: 'textarea',
name: 'About you',
placeholder: 'A few words about you',
initialValue: data && data.currentUser.about,
})
about 是值,aboutInput 是实际的输入元素本身。我也可以将 initialValue 传递给它。
在组件的开头,我像这样获取数据:
const { data, loading, error } = useQuery(GET_CURRENT_USER_QUERY)
这仅在客户端和服务器端执行 data 未定义。
因此,只有当我从另一个客户端页面通过链接组件导航到该页面时,此代码才有效。
它不适用于:
- 当我直接访问 URL 时
- 当我从另一个 SSR 页面(使用 getInitailProps)导航到此页面时
我不想使用生命周期方法/类组件(因为我正在使用钩子,并且想继续使用功能组件。
在 Next JS 中是否有一个很好的方法来实现这一点并继续使用函数式组件?
【问题讨论】:
标签: javascript reactjs next.js server-side-rendering