Having trouble using react-moveable with NEXTjs: TypeError: Cannot read property 'userAgent' of undefined

Having trouble using react-moveable with NEXTjs: TypeError: Cannot read property 'userAgent' of undefined

过去几个小时我一直在努力解决这个问题。我可以通过一个简单的 node.js 应用程序很好地使用 react-moveable。当我尝试在 NEXTjs 应用程序中使用相同的模块时,它会引发错误:TypeError: Cannot read property 'userAgent' of undefined

这里是重复的问题: https://codesandbox.io/s/hungry-ramanujan-ttqh3?fontsize=14&hidenavigation=1&theme=dark

据我所知,我似乎正在尝试在服务器端呈现本应在客户端呈现的内容。虽然不确定解决方案是什么...

感谢您的帮助!

这里的问题是模块未准备好 SSR,它正在尝试读取 navigator.userAgent

您可以尝试将您的逻辑移动到另一个组件并使用 next/dynamic 动态导入它,将 ssr 设置为 false:

import dynamic from 'next/dynamic';

// ...
// other stuff, imports, etc
// ...

const MoveableNoSSR = dynamic(() => import('./MoveableWrapper'), {
  ssr: false,
  loading: () => <div>Loading Moveable...</div>,
});