react-native - 如何在 react-native 中对多个项目设置通用搜索
问题描述
我正在使用搜索功能,我从LeaveType搜索休假,它工作正常,但我也想搜索状态,该项目包含状态。搜索功能如何在LeaveType和Status上工作。我尝试过的:
const itemData = item.LeaveType ? item.LeaveType.toUpperCase() : ''.toUpperCase() || item.Status ? item.Status.toUpperCase() : ''.toUpperCase();
我正在使用这个功能
SearchFilterFunction(value) {
const newData = this.state.display.filter(function(item) {
const itemData = item.LeaveType ? item.LeaveType.toUpperCase() : ''.toUpperCase();
const textData = value.toUpperCase();
return itemData.indexOf(textData) > -1;
});
this.setState({
response: newData,
value: value,
});
}
谁能知道我做错了什么或这里缺少什么?
解决方案
这段代码对我有用
SearchFilterFunction(value) {
const newData = this.state.display.filter(function(item) {
//const itemData = item.LeaveType || item.Status ? item.LeaveType.toUpperCase() || item.Status.toUpperCase() : ''.toUpperCase() || ''.toUpperCase();
const leavetypeData = item.LeaveType ? item.LeaveType.toUpperCase() : ''.toUpperCase();
const statusData = item.Status ? item.Status.toUpperCase() : ''.toUpperCase();
const stData = item.StartDate ? (moment(item.StartDate).format("dd MMM yyyy")) : '';
const edData = item.EndDate ? (moment(item.EndDate).format("dd MMM yyyy")) : '';
const reasonData = item.Reason ? (item.Reason).toUpperCase() : '';
const textData = value.toUpperCase();
return (leavetypeData.indexOf(textData) > -1 || statusData.indexOf(textData) > -1 || stData.toUpperCase().indexOf(textData) > -1
|| edData.toUpperCase().indexOf(textData) > -1 || reasonData.indexOf(textData) > -1);
});
this.setState({
response: newData,
value: value,
});
}
推荐阅读
- python - 如何解决这个网状/scipy 问题?
- android - 在 dart 中隐藏和显示小部件
- maven - 使用 swagger-maven-plugin 3.1.7 生成的空 swagger.json
- python - Tkinter 窗口未打开且小部件未显示
- javascript - 如何在jquery中找到一个类时空
- mysql - 将数据从 rest api 推送到 sql 数据库的最佳方法是什么?
- javascript - 弹出窗口和停止计数器需要 JavaScript 帮助
- javascript - JS 表达式,用于根据先前响应输出中的多个变量计算和设置输入值
- node.js - 使用带有过滤器的 Mongoose .find() 调用 API 不返回任何内容?
- arrays - 如何访问深层嵌套的 json 即转换为 json 的肥皂 xml 响应