【发布时间】:2021-01-13 13:35:50
【问题描述】:
我一直在尝试通过重新加载来保持我的 redux 存储。起初我使用 useEffect 来调度我的操作,但是当我尝试重新加载页面路由器时,它变得未定义,并且出现 500 错误。之后我尝试使用 getInitialProps 并使用 ctx.query.id 但我遇到了另一个错误,说只能在函数组件的主体内部调用钩子。
如何让钩子在 getInitialProps 内部工作,以及通过重新加载来持久保存我的商店数据的最佳方式是什么?
export default function CarPage() {
const dispatch = useDispatch()
const router = useRouter()
const car = useSelector((state) => state.cars.car)
/*
useEffect(() => {
if(!car && router) {
dispatch(getCar(router.query.id))
}
}, [])
*/
return (
<Container>
<h2>{car.model}</h2>
</Container>
)
}
CarPage.getInitialProps = async (ctx) => {
const dispatch = useDispatch()
dispatch(getCar(ctx.query.id))
}
【问题讨论】:
标签: redux react-redux next.js