Node.js 搜索未正确筛选
我有麻烦,要执行过滤,当我搜索一个词时,数据库中的所有产品都会出现,你能帮我一下吗 我的后端的一部分: 部分正面Node.js 搜索未正确筛选,node.js,reactjs,api,filter,Node.js,Reactjs,Api,Filter,我有麻烦,要执行过滤,当我搜索一个词时,数据库中的所有产品都会出现,你能帮我一下吗 我的后端的一部分: 部分正面 import SearchInput from './SearchInput'; import api from '../../services/api'; export default function Example(){ const [product, setProduct] = useState([]); const [text, setText] = u
import SearchInput from './SearchInput';
import api from '../../services/api';
export default function Example(){
const [product, setProduct] = useState([]);
const [text, setText] = useState('');
useEffect(()=>{
if(text){
api.get(`/product?filter[productName]=${text}`)
.then((response) => {
const products = response.data;
setProduct(products);
})
}
},[text]);
return(
<div className="App">
<h1>Pesquisa de produtos</h1>
<SearchInput value={text}
onChange={(search) => setText(search)}
/>
{product && (
<ul>
{product.map(product=>(
<li key={product.id}>
{product.productName}
</li>
))}
</ul>
)}
</div>
)
}
从“/SearchInput”导入SearchInput;
从“../../services/api”导入api;
导出默认函数示例(){
const[product,setProduct]=useState([]);
const[text,setText]=useState(“”);
useffect(()=>{
如果(文本){
api.get(`/product?过滤器[productName]=${text}`)
。然后((响应)=>{
const products=response.data;
setProduct(产品);
})
}
},[正文];
返回(
普罗杜托斯酒店
setText(搜索)}
/>
{产品&&(
{product.map(product=>(
-
{product.productName}
))}
)}
)
}
搜索时的站点视图:
对于视图筛选结果,您可以根据
文本的值在渲染产品
时使用条件渲染。看起来您的后端只是返回数据库中的所有结果,它不会使用您从前端发送的筛选器来仅获取所需的记录。您的后端应该这样做,否则在endpoint@Jayce444那么会发生什么呢,我用这个部分,向我展示网站主要部分的产品列表,但是我不知道我是否需要为过滤器创建一个单独的异步函数。@Ramayana3我不清楚他说如何渲染产品的方式。