gpt4 book ai didi

javascript - 删除字符会产生错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:40:24 24 4
gpt4 key购买 nike

我的小实验的目标很简单:过滤/搜索名称与输入文本字段中键入的当前值匹配的用户。为实现此类功能,我使用了 RegExp()。一切都很好,除非我删除一个字符;这样做会使过滤停止。

在构造函数中:

state = { users: [] }

事件:

searchUser = e => {
const target = e.target;

this.setState(state => {
const regex = new RegExp(target.value, 'i');
const filteredUsers = state.users.filter(user => regex.test(user.name));

return { users: filteredUsers }
})
}

render() 内部:

<input type='text' onChange={this.searchUser} />

是不是因为setState()是异步的?

用户列表的获取是在 componentDidMount() 中使用 fetch()async/await 完成的。

最佳答案

我认为你在打字时实际上只是用越来越窄的参数进行过滤。删除时,您的 state.users 已突变为仅包含先前过滤的用户,看起来它停止工作了。

要解决此问题,请更改

const filteredUsers = state.users.filter(user => regex.test(user.name));

类似于

const filteredUsers = allUsers.filter(user => regex.test(user.name));

关于javascript - 删除字符会产生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53704108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com