gpt4 book ai didi

javascript - Next.js:带状态的 Router.push

转载 作者:行者123 更新时间:2023-12-03 13:25:37 26 4
gpt4 key购买 nike

我正在使用 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 参数的情况下将状态或参数传递到另一个页面?

最佳答案

next.js 中,您可以像这样传递查询参数

Router.push({
pathname: '/about',
query: { name: 'Someone' }
})

然后在下一页(此处为 /about 页面)中,通过 router 属性检索 query,该属性需要使用 withRouter 注入(inject)到 Component

import { withRouter } from 'next/router'

class About extends React.Component {
// your Component implementation
// retrieve them like this
// this.props.router.query.name
}

export default withRouter(About)

关于javascript - Next.js:带状态的 Router.push,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55182529/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com