gpt4 book ai didi

reactjs - 在 Gatsby 中根据屏幕尺寸切换布局

转载 作者:行者123 更新时间:2023-12-04 17:37:56 26 4
gpt4 key购买 nike

我正在使用 Gatsby 构建一个网络应用程序,它需要在移动浏览器中加载使用移动 ui 库构建的单独布局,并在桌面浏览器中打开时加载另一个 ui 库的不同布局。

我应该如何在根(应用)组件级别实现这一点?

谢谢

最佳答案

我认为您可以尝试使用 wrapPageElement in gatsby-browser.js and gatsby-ssr.js , 根据浏览器高度返回不同的布局:

const React = require("react")
const Layout = ...
const MobileLayout = ...

exports.wrapPageElement = ({ element, props }) => {

// a made up hook to detect browser size, implement your own
const isMobile = useDetectMobile()

return (
isMobile
? <MobileLayout {...props}>{element}</MobileLayout>
: <Layout {...props}>{element}</Layout>

)
}

但这会变得很棘手,因为在服务器端生成期间您需要一个默认布局,这可能(或可能不会?)导致错误行为?我不确定。

一个安全的选择是为您的应用程序生成一个移动版本和一个桌面版本,然后在 gatsby-browser 中检测浏览器大小/类型并相应地重定向。

关于reactjs - 在 Gatsby 中根据屏幕尺寸切换布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55870121/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com