![](/img/trans.png)
[英]How to filter props in Next.js? Can't filter data in props from componentDidMount in Next.js
[英]How to requery data in Next.js
我刚开始学习 Next.js,但在查询数据时遇到了一些问题。
我知道getInitialProps
用于查询 API 并获取数据,并在服务器上呈现。
我想要一个用户搜索的搜索框,当他们输入时,它会重复查询函数中的 API 并将结果存储在状态中,但存储在服务器端。
getInitialProps
那样呈现在客户端上?getInitialProps
并传入搜索词吗?无法在服务器上进行这种动态(当用户输入时)搜索。 这需要根据文档在 UI 上处理
对于初始页面加载,getInitialProps 将仅在服务器上执行。 getInitialProps 只会在通过 Link 组件导航到不同路由或使用路由 API 时在客户端上执行。
将在服务器上预呈现的唯一搜索是重新加载该页面的搜索。
例子
<form action="/search-enpoint">
<input name="search" type="text" placeholder="Search" />
<button>Find</button>
</form>
此表单将提交到/search-enpoint?search=qwe
您可以在自定义服务器中捕获
// server.js
const { createServer } = require('http');
const { parse } = require('url');
const next = require('next');
const dev = process.env.NODE_ENV !== 'production';
const app = next({ dev });
const handle = app.getRequestHandler();
app.prepare().then(() => {
createServer((req, res) => {
const parsedUrl = parse(req.url, true);
const { pathname, query } = parsedUrl;
if (pathname === '/search-enpoint') {
app.render(req, res, '/index', query);
} else {
handle(req, res, parsedUrl);
}
}).listen(3000, err => {
if (err) throw err;
console.log('> Ready on http://localhost:3000');
});
});
但同样,这种搜索不是动态的。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.