我非常喜欢inline CSS pattern in React,并决定使用它.

但是,不能使用:hover和类似的 Select 器.那么,在使用内联CSS样式时,实现悬停高亮显示的最佳方法是什么?

#reactjs的一个建议是使用一个Clickable组件,如下所示:

<Clickable>
    <Link />
</Clickable>

Clickable有一个hovered状态,并将其作为props 传递给链接.然而,Clickable(我实现它的方式)将Link封装在div中,这样就可以设置onMouseEnteronMouseLeave.但这让事情变得有点复杂(例如,用div包装的spanspan的行为不同).

有没有更简单的方法?

推荐答案

我也有同样的情况.非常喜欢在组件中保持样式的模式,但悬停状态似乎是最后一个障碍.

我所做的是编写一个mixin,可以添加到需要悬停状态的组件中.

现在,在组件渲染功能中,可以执行以下操作:

<button style={m(
     this.styles.container,
     this.state.hovered && this.styles.hover,
)}>{this.props.children}</button>

现在,每当hovered状态的状态改变时,组件将重新启动.

我还为此创建了一个沙箱回购协议,我自己用它来测试其中一些模式.如果您想查看我的实现示例,请查看它.

https://github.com/Sitebase/cssinjs/tree/feature-interaction-mixin

Reactjs相关问答推荐

重新加载页面时始终出现汉堡菜单

Redux toolet TypHelp:在使用redux thunk获取数据时无法读取未定义(读取类型)的属性

使用筛选器的Primereact DataTable服务器端分页?

App.js中的H2组件不会动态呈现.这可能是什么问题?

在REACT-RUTER-DOMV6中使用通用页面包装组件有问题吗?

如何在物料界面react 的多选菜单中设置最大 Select 数限制

状态更改是否卸载功能组件

React路由dom布局隐藏内容

如何根据ReactJS中元素列表中的布尔值仅显示一次值

将 useRef 与 useImperativeHandle 一起使用时,React 不会重新渲染

useEffect 内的 onClick 和 addEventListener 之间的 click 事件顺序差异

REACT: UseState 没有更新变量(ant design 模态形式)

如何在PrimeReact的表格中修改筛选图标功能

Firebase查询返回随机用户数据,而不是过滤后的用户数据

CORS策略:对预检请求的响应未通过访问控制判断:没有Access-Control-Allow-Origin

React - 添加了输入数据但不显示

使用dayjs时如何在输入类型日期时间本地字段中设置默认值?

Select 建议后如何关闭 vscode 添加自动完成={}

错误:无效挂钩调用.钩子只能在函数组件的主体内部调用.使用 next/router 时

设置 Material UI 表格默认排序