javascript - 在 React 中填充搜索栏之前,表格不会呈现
问题描述
我有一张我映射的数据表。我需要在页面呈现时可以查看所有可用数据,但是我当前设置的搜索功能仅呈现与输入匹配的表格单元格。如何让所有数据都存在,然后仅在使用搜索栏时过滤掉项目?
这是我的状态,也是我用来过滤的
let [filter, setFilter] = useState();
let [filteredResults, setFilteredResults] = useState([]);
const handleChange = event => {
setFilter(event.target.value);
};
这是我用来进行实际过滤的 useEffect
useEffect(() => {
if (props.data !== undefined) {
const results = props.data.filter(
resp =>
(resp.first_name || "").toLowerCase().includes(filter) ||
(resp.last_name || "").toLowerCase().includes(filter)
);
setFilteredResults(results);
}
}, [filter, props.data]);
这是搜索栏的输入
<input
type="text"
className="searchField"
onChange={handleChange}
value={filter || ""}
/>
最后是大坏表本身
filteredResults.map(data => {
return (
<tr key={data.id}>
<td>
<div className="mobileBox">
{data.first_name !== ""
? data.first_name + " " + data.last_name
: "--None--"}
</div>
</td>
<td className="normalView">
{props.departments.map(department => {
return department.id === data.default_department_id ? (
<div key={department.id}> {department.name}</div>
) : (
""
);
})}
</td>
<td className="normalView">
{data.status ? "Active" : "Disabled"}
</td>
<td>
<i
className="fas fa-pencil-alt"
onClick={() => handleEdit(data)}
></i>
</td>
</tr>
);
})
)}
</tbody>
</table>
任何帮助,将不胜感激
解决方案
推荐阅读
- html - 如何在离子卡中设置内边距?离子 4
- mapbox - Mapbox API 沿路径返回高程数据
- c - 如何使用 fscanf() 逐行读取 C 中的某些文件而不获取幻线?
- python - Plotly express 与 Altair/Vega-Lite 的交互式绘图
- excel - 无法将 Excel 中的 vba 宏与 KEPServer 连接。DDERequest 错误 2023
- java - 无法将项目上传到 AWS Lambda
- yii2 - SQLSTATE [23000]:违反完整性约束:1052 where 子句中的列“名称”不明确.. Yii2
- python - Tensorflow:从张量数组创建数据集
- vue.js - vue konva 可编辑的视频文本
- c# - 尝试调用 Web 服务但出现错误