-1

如果其任何字段包含输入字段具有的文本,我正在尝试显示用户列表。如果我删除了 filtersList() 函数中的 for 循环并选择手动选择它是从中选择的,我可以让它工作

(前任:return theuser.username.toLowerCase().includes(searchinput.toLowerCase());)

但我不想一遍又一遍地写这个,以防字段被带走或稍后添加。

现在我收到“vue.js:634 [Vue warn]: Error in render:”TypeError: Cannot read property '0' of undefined”,但我不确定是什么导致了这个错误。有人可以向我解释为什么会这样发生了?有没有比让我想在自己的数组中检查的字段更好的方法来使这更加动态?

我拿了代码并放入了一个codepen - https://codepen.io/Jaylan_Snelson/pen/ZEbajYp?editors=1011

4

1 回答 1

1

你不想theuser[shownFields[i]]因为theuser.shownFields[i]没有theuser一个属性叫做shownFields

您还需要更改什么i <= shownFields.length-i < shownFields.length因为数组的长度比最高索引大一

return this.items.filter(function(theuser) {
    for(var i = 0; i < shownFields.length; i++) { // change here
       if(theuser[shownFields[i]].toLowerCase().includes(searchinput.toLowerCase())) { // change here
           return theuser[shownFields[i]].toLowerCase().includes(searchinput.toLowerCase()); // change here
       }
    }
});
于 2020-05-04T02:07:16.220 回答