处理样式化组件中悬停的最佳方法是什么.我有一个包装元素,悬停时会显示一个按钮.

我可以在组件上实现一些状态,并在hover上切换属性,但我想知道是否有更好的方法来使用样式化的组件来实现这一点.

下面这样的方法不起作用,但很理想:

const Wrapper = styled.div`
  border-radius: 0.25rem;
  overflow: hidden;
  box-shadow: 0 3px 10px -3px rgba(0, 0, 0, 0.25);
  &:not(:last-child) {
    margin-bottom: 2rem;
  }
  &:hover {
    .button {
      display: none;
    }
  }
`

推荐答案

对于样式化组件v2,您可以插入其他样式化组件,以引用其自动生成的类名.在你的情况下,你可能会想这样做:

const Wrapper = styled.div`
  &:hover ${Button} {
    display: none;
  }
`

更多信息请参见the documentation

组件的顺序很重要.只有在Wrapper之前定义了Button,它才会起作用.


如果您使用的是v1,并且需要这样做,您可以通过使用自定义类名来解决这个问题:

const Wrapper = styled.div`
  &:hover .my__unique__button__class-asdf123 {
    display: none;
  }
`

<Wrapper>
  <Button className="my__unique__button__class-asdf123" />
</Wrapper>

由于v2是从v1升级而来的,我建议升级,但如果卡中没有,这是一个很好的解决方法.

Reactjs相关问答推荐

更新数据时有关CQR和更新UI的问题

如何使用Reducer更新全局变量

在Redux工具包查询中,是否可以将标记应用到API切片内的所有端点?

通过单击具有此值的按钮将值添加到数组对象键

REACTJS:在Reaction中根据路由路径更改加载器API URL

是否为Reaction中未使用的组件生成Tailwincss样式?

Github 操作失败:发布 NPM 包

Chart.js如何go 除边框

在 useSelector() 中使用 array.map() 如何导致组件在分派操作时重新渲染?

为 Next.js 应用程序目录中的所有页面添加逻辑的全局文件是什么?

获取 不能显示为 的后代.错误,但不太确定如何构建我的代码以避免此警告

解决在React测试库中的act()警告

每次状态更改时都会提交react 表单

React - 使用 useEffect 还是直接在 onChange 方法中更改值对性能最好?

使用 react pro 侧边栏展开折叠菜单

改变输入的默认值时出现问题:number react-hook-form

状态链接未传递到路由页面

如何在 React Native 中更新跨屏幕呈现的上下文状态变量?

如何禁用来自 React Native API 的某些特定项目的可touch 不透明度

调用函数以获取数据并在数据到达时导航到链接