我正在使用Next.js重构一个进行服务器端渲染的应用程序。 我有一个处理搜索请求的按钮。
在旧的应用程序中,处理程序如下:
search = (event) => {
event.preventDefault();
history.push({
pathname: '/results',
state: {
pattern: this.state.searchText,
}
});
}
在结果类中,我可以使用 this.props.location.state.pattern 获取状态日期。
现在我正在使用 Next.js:
import Router, { withRouter } from 'next/router'
performSearch = (event) => {
event.preventDefault();
Router.push({ pathname: '/results', state: { pattern: this.state.searchText } });
};
在结果类中,我使用了 。static async getInitialProps({req}) {
return req.params;
}
我不确定是否需要将这个添加到我的server.js文件中:
server.get('/results', (req, res) => {
return app.render(req, res, '/results', req.params)
})
然而,getInitialProps函数会抛出错误,因为req未定义。长话短说:如何在不使用GET参数的情况下将状态或参数传递到另一页?
getInitialProps
中使用了req.user
,但是当客户端进行路由时,就没有req
对象了。只有在 Next.js 在服务器上渲染时才存在req.user
。 - Prithwee Das