点击图片时selected类未成功添加的技术求助
问题排查与修复
首先看最明显的错误:你的useState用了对象解构,但React的useState返回的是数组,应该用数组解构。这会导致selectedAvatar一直是undefined,永远匹配不上循环的index,所以selected类加不上。
修复核心问题
把这一行:
const {selectedAvatar,setSelectedAvatar} = useState(undefined)
改成:
const [selectedAvatar, setSelectedAvatar] = useState(undefined)
其他排查点(如果修复后还是有问题)
- 确认
avatars数组是有效的,能正常遍历出元素,每个循环的index是连续的数字(比如0、1、2...) - 检查img元素有没有被其他元素遮挡,导致点击事件没触发。可以给img加个调试用的console.log:
看控制台有没有输出,确认点击事件是否生效。onClick={()=>{ console.log('点击了索引', index); setSelectedAvatar(index); }} - 检查
selected类的CSS规则是否正确,比如有没有写错类名,或者样式被其他规则覆盖了。
内容的提问来源于stack exchange,提问作者Jinmori
相关产品推荐
相关产品推荐

