【发布时间】:2021-11-09 23:35:51
【问题描述】:
我正在做一个搜索组件反应并且无法弄清楚这个错误?我认为它可能只是语法,但我看不到。
src/components/SearchResults.js 第 38:22 行:Array.prototype.filter() 期望在箭头函数 array-callback-return 的末尾返回一个值
const filterData = () => {
return data
.filter((item) => {
if (searchTerm === "") {
} else {
let searchText = item.title;
let searchBlock = item.content;
if (searchText.toLowerCase().includes(searchTerm.toLowerCase())) {
return item;
} else {
let test = null;
searchBlock.forEach((obj) => {
if (obj.text &&
obj.text.toLowerCase().includes(searchTerm.toLowerCase())) {
test = true;
return test;
}
});
if (test) {
return item;
}
}
}
})
.map((item) => {
return (
<div key={item.index}>
<h3 style={{ padding: "0.25rem" }}>{splitResult(item.title)}</h3>
{item.content.map((block, i) => (
<div key={i}>
{block.text && <div>{splitResult(block.text)}</div>}
{block.items && (
<div>
{block.items.map((l, i) => (
<div style={{ padding: "0.25rem" }} key={i}>
{splitResult(l)}
</div>
))}
</div>
)}
</div>
))}
<div
className={styles.searchLink}
onClick={() => {
context.setCurrentSlide(item.index);
setSearchTerm("");
hideResults();
clearInput();
toggleSearch();
}}
>
Go To This Slide
</div>
<hr />
</div>
);
});
};
【问题讨论】:
-
尝试以各种可能的方式获得回报。比如这里
if (searchTerm === "") { } else {在如果没有返回,那么尝试添加在那里
标签: arrays reactjs return-value arrow-functions array.prototype.map