我困惑了很长一段时间来解决我的问题上使用钩子像useDispatch
在getStaticProps
或getServerSideProps
。我使用redux-toolkit
管理状态,也使用Next.js,但是当在SSG函数中使用(useDispatch
)时,我得到了错误
错误:无效的钩子调用。钩子只能在函数组件的主体内部调用。
我还找到了一个解决方案来解决这个问题,使用redux-next-wrapper
。但是我想知道除了redux-next-wrapper
之外还有其他方法可以解决我的问题吗?
2条答案
按热度按时间eblbsuwk1#
如果你使用的是Nextjs,避免潜在错误的最好方法是使用next-redux-wrapper。一开始可能会有点困惑,但很快你就会明白的。我在github上有一个下一个redux Package 器的模板,有3个简单的reducer来匹配不同的情况,请随意更改它以满足您的需求:https://github.com/vahidkk/My-customized-Redux-Wrapper-for-Next.js-with-3-reducers
eit6fx6z2#
我知道现在回答这个问题已经太晚了,但它可能会帮助其他人。
在我最近的nextjs应用程序中,我需要国际化,所有的区域设置都来自后端。我想在应用程序中有区域设置,而不将其传递给子元素。
如你所知,你可以静态地将变量存储在类中,当你改变变量时,它将在整个程序中改变。
所以我决定像这样存储我的变量:
并将其更改为我的页面组件:
每当我改变SSR上的数据,它会在整个程序中没有搜索引擎优化问题的影响。
它不是
redux
,但它比使用next-redux-wrapper
好,最新发布是8个月前。