Javascript React.js中搜索输入的过滤器
我正在尝试使用React为搜索输入创建一个过滤器。 我有一个Javascript React.js中搜索输入的过滤器,javascript,reactjs,filter,react-hooks,use-effect,Javascript,Reactjs,Filter,React Hooks,Use Effect,我正在尝试使用React为搜索输入创建一个过滤器。 我有一个fourniseurs数组,里面有一个对象,如下所示: fournisseurs: [ { 'id' : '0', 'codeFournisseur' : '2222222', 'categorie' : 'sdfgsdfg', 'statusJuridique' : 'sdfgdfhs', 'raisonSociale' :
fourniseurs
数组,里面有一个对象,如下所示:
fournisseurs: [
{
'id' : '0',
'codeFournisseur' : '2222222',
'categorie' : 'sdfgsdfg',
'statusJuridique' : 'sdfgdfhs',
'raisonSociale' : 'sdfhdhs',
'typeReglement' : 'sdhgdfhdf',
'delaiReglement' : 'sdhfgdhs',
'franco' : 'sdfhsdh',
'fraisDePort' : 'sdhhsdhf',
'adresse' : 'sdfhsdfh',
'codePostal' : 'sfdgsdfgsdfg',
'ville' : 'sdgsd',
'pays' : 'France',
'telephone' : '+333333333333',
'mail' : 'dfxgdf@sdhgdfh.fr',
'siteInternet' : 'http://www.sdfgsdfhs.fr',
'tvaIntracomm' : 'sdfhsdghsdgh'
}
]
问题是我不能搜索整个物体。
我只能搜索对象的一个元素(此处为raisonSociale),例如:
useEffect(() => {
setData(searchText.length === 0 ? fournisseurs : _.filter(fournisseurs, fournisseur => fournisseur.raisonSociale.toLowerCase().includes(searchText.toLowerCase())))
}, [fournisseurs, searchText]);
如果可以在筛选方法中使用扩展运算符或类似的方法从搜索中检索对象的所有元素,是否有人可以指导我?试试这个,我添加了两个新的键,您也可以搜索它们
useEffect(() => {
setData(searchText.length === 0 ? fournisseurs : {
_.filter(fournisseurs, fournisseur =>
return fournisseur.raisonSociale.toLowerCase().includes(searchText.toLowerCase()) ||
fournisseur.typeReglement.toLowerCase().includes(searchText.toLowerCase()) ||
fournisseur.delaiReglement.toLowerCase().includes(searchText.toLowerCase())
)
})
}, [fournisseurs, searchText]);
谢谢!我不得不稍微修改一下语法,但这种方法非常有效。