作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
尝试使用 react 隐藏和显示列表但失败
handleChange = e => {
const { list } = this.state;
if (e.target.value !== "") {
this.setState({
list: list.map(o => ({
name: o.name,
hide: !o.name.indexOf(e.target.value) > -1
}))
})
} else {
this.setState({
list: list.map(o => ({
name: o.name,
hide: false
}))
});
}
};
最佳答案
让我解释一下你做错了什么
隐藏:!o.name.indexOf(e.target.value) > -1
在上面的代码中,indexOf 值将被返回(可能是一些数字)然后返回 false 因为 !
运算符。
您正在尝试将 BOOL 值与整数 -1 进行比较,这显然会返回 false
用Brackets把你的condition包起来然后放上!
如下,
隐藏:!(o.name.indexOf(e.target.value) > -1)
或者使用下面的条件,
隐藏:o.name.indexOf(e.target.value) === -1
它会起作用的。
关于使用 indexOf 的 javascript 搜索不适用于 map(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49081724/
我是一名优秀的程序员,十分优秀!