next.js - 为什么当我更改我的 url 时我的 sidenav 会重新呈现?每个页面都使用 Layout.js,其中包括我的 sidenav
问题描述
每当我在 NextJS 中使用 router.push 更改我的 url 时,它都会触发我的 sidenav 退出屏幕并淡入 - 即使状态“showSide”保持为真。有没有人可以请解释为什么会发生这种情况?谢谢
//SideNav.js
const Container = styled(motion.div)`
****container styling****
`
const variants = {
visible: {
translateX: 0,
transition: {
translateX: {
duration: 0.5,
type: "spring",
stiffness: 50,
damping: 12
}
}
},
hidden: {
translateX: -300,
transition: {
translateX: {
duration: 0.5
}
}
},
exit: {
translateX: -300,
transition: {
translateX: {
duration: 0.5
}
}
}
}
**return (
<AnimatePresence key="keyyyy">
{showSide && (
<Container showSide={showSide} variants={variants} initial="hidden" animate="visible" exit="exit" key="mySideNav" >
{options && options.map((option, key) => {
return (
<Option active={router.pathname === option.to ? 1 : 0} key={key} onClick={() => {
if(option.to) {
router.push(option.to)
}
}}>{option.name && option.name}</Option>
)
})}
</Container>
)}
</AnimatePresence>
)
解决方案
推荐阅读
- angular - 如何配置一个在大屏幕和小屏幕上都很好用的材质 cdk 覆盖位置策略?
- javascript - Web 扩展:有没有办法将事件对象从 BrowserAction 传递到后台脚本?
- reactjs - 使用 this.props.history.push('/') 的用户注销重定向不会重定向到所需的页面
- ruby-on-rails - Pages#index 中的 Sass::SyntaxError:错误消息未定义变量:“$enable-grid-classes”
- amazon-web-services - 在 Ubuntu 上为 AWS 启用 ENA
- java - `() -> delegate` 是如何包装 Stream 的?
- google-cloud-platform - 无法在 Cloud Run 中创建新的 GCP 端点
- perl - 如何通过存储在变量中的索引访问哈希值
- geolocation - 如何从 YouTube Data API v3 访问视频的录制详细信息(尤其是位置)
- javascript - 为什么我无法访问 document.querySelectorAll 的某些元素