当无状态组件中的onMouseEnter div时如何更改图像src

问题描述

我是新手。 我想在鼠标进入div时更改图片的src。

这是我的代码。

const CategoryImage = styled.img.attrs(props => ({
  src: props.url,}))`
  width: 80px;
  height: 80px;
  margin: 5px auto;
`;

let imgUrl = ``;

const Category = ({ categoryItems }) => {
  function handleHover(category) {
    const {
      category: { hoverUrl },} = category;
    // console.log(hoverUrl);
    imgUrl = hoverUrl;
  }
  function handleUnHover(category) {
    const {
      category: { url },} = category;
    // console.log(url);
    imgUrl = url;
  }

  return (
    <Container>
      <Grid>
        {categoryItems.map(category => (
          <CategoryContainer
            key={category.id}
            onMouseEnter={() => handleHover({ category })}
            onMouseLeave={() => handleUnHover({ category })}
          >
            <CategoryImage url={imgUrl} alt={category.name} />
            <CategoryName key={category.id}> {category.name} </CategoryName>
          </CategoryContainer>
        ))}
      </Grid>
    </Container>
  );
};

我可以在不使用状态的情况下更改图像吗?

大多数问题通常使用状态来更改图像。我认为当我的案子(代码)发生更改时不需要状态。

而且,我听说在不使用状态的情况下性能通常会更好。是吗?

总是感谢你们:)

解决方法

如果有2张图片,只需添加css属性。通过不显示来隐藏它,并将所有图像放在顶部....

在鼠标悬停或输入时,在这种情况下,传递类名,就这样.....

我很早以前就完成了这项任务,但是不记得我到底做了什么,

尝试一下

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...