如何在nextjs中更改语言后刷新页面?客户端到服务器端

v64noz0r  于 2023-06-22  发布在  其他
关注(0)|答案(1)|浏览(143)

我正在开发nextjs app。我通过使用query params('website.com/data?lang= en')。那么,当用户更改应用程序区域设置时,如何刷新或触发getServerSideProps(getStaticProps)?或者如何正确检测区域设置的变化?

// Client side change language
const changeLanguage = (locale) => {
  router.push(router.asPath, router.asPath, { locale });
};

const fetchData = async (locale) =>
  await client()
    .get('/api/products', { params: { lang: locale } })
    .then((res) => ({
      index: res.data
    }))
    .catch(() => ());

export const getServerSideProps = async (context) => {
  const { locale } = context;
  const data = await fetchData(locale);

  return {
    props: data,
    notFound
  };
};
export default Index;

注意:路由器.推送不触发serversideprops

xam8gpfp

xam8gpfp1#

如果你想做的只是重新加载页面,你可以浏览器window.location.reload()函数。

相关问题