reactjs - 259 / 5000 Wyniki tłumaczenia 搜索引擎 - 从状态数组中消失的项目
问题描述
我的搜索引擎有问题,它不能正常工作。当我在输入中输入一些文本时,它会搜索某些内容,但是当我删除它时,所有元素都会消失。请帮忙。状态包含取自 api 的名称
const courseReducer = (state, action) => {
switch (action.type) {
case 'SEARCH':
return state.filter(task => task.name.toLocaleLowerCase().includes(action.searchText))
}
}
const [state, dispatch] = useReducer(courseReducer, [])
表单.jsx
const Form = () => {
const { dispatch, state } = useContext(DataContext)
const [text, setText] = useState('')
const handleInput = event => {
setText(event.target.value)
const searchText = text.toLocaleLowerCase();
dispatch({ type: 'SEARCH', searchText })
}
return (
<input type="text" value={text} onChange={handleInput} />
}
解决方案
看起来你courseReducer
实际上是在搜索后改变状态。你想要的是filter
在Form
渲染本身中做。
推荐阅读
- java - 为什么我会收到此异常错误?ArrayOutOfBounds?
- perl - Perl逐行读取文件输出SHA256
- php - Laravel问题上次登录,每行都标记时间
- image - 在单色图像中找到具有浮点区域的最大内接正方形
- django - Django 3.0 值错误
- javascript - Can I omit Return value in arrow function in JavaScript?
- python - 简单文本推荐系统的语法错误
- javascript - 使用 node.js、npmjs websocket 构建实时聊天
- php - 尝试放置操作按钮时出错(使用 Json 方法)
- python - 如何在 Python 中使用多个标签进行一次热编码?