reactjs - 如何在React中处理无状态组件中的鼠标事件

标签 reactjs

全部:

我想知道如果我使用无状态组件,如何处理鼠标事件来改变组件样式,例如:

const Com = (props) => {
    var hltStyle = false;
    function highlight(){
        // I do not know what put here
    }

    var hltStyle = {
        backgroundColor: !hltStyle?"lightgreen": "tomato"
    }

    return (
        <div style={hltStyle} onMouseOver={ highlight } >HOVER ME</div>
    )
}

我想要的只是悬停此组件并更改背景颜色。高亮内部还有一些其他逻辑,这就是为什么我不能简单地使用CSS

谢谢

最佳答案

你可以使用这样的东西来实现这一点

const Com = () => {
        function over(e){
                e.target.style.backgroundColor="red";
        }
        function out(e){
                e.target.style.backgroundColor='';
        }
        return <div onMouseOver={over} onMouseOut={out}>HOVER ME </div>;
}

无论如何,如果您觉得需要声明一些变量以将它们用作状态,则应该使用普通组件而不是无状态组件。

jsfiddle

关于reactjs - 如何在React中处理无状态组件中的鼠标事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37690745/

相关文章:

reactjs - 如何提高 Material UI 的整体动画速度

java - React - 如何将我想要的组件拾取到另一个模块中

javascript - 如何使用 ReactJS 调用函数内的方法(单击 a href 以注销)

javascript - 如何强制重新挂载 React 组件?

javascript - 未捕获的 TypeError : Cannot set property 'onclick' of null , 无法打开我的弹出窗口

reactjs - Typescript上传目录,类型上不存在属性 'directory'

javascript - 使用 fetch api 发送获取请求失败

javascript - 在 React js 中使用 D3Funnel 时,TypeError : this. querySelectorAll 不是函数

reactjs - 开 Jest ,意外的 token 导入

javascript - 即使在分派(dispatch)操作并接收有效负载后,也不会调用Reducer