gpt4 book ai didi

reactjs - 有条件地渲染图像时 React 中的图像闪烁问题

转载 作者:行者123 更新时间:2023-12-05 03:10:03 28 4
gpt4 key购买 nike

我有一个标题,当鼠标悬停在标题上时,我想在其右侧显示一个图像。

  • 我在设置为 true/false 的状态下维护一个变量 editMode

  • 然后我使用 onMouseOver 和 onMouse 事件有条件地渲染图像。

现在,当我将鼠标悬停在标题上时,编辑模式设置为 true 并且图像显示,当我将光标移出标题时,editMode 设置为 false 并且图像消失。

我在状态下维护一个变量 editMode,该状态设置为 true/false,有条件地使用 onMouseOver 和 onMouse 渲染图像:

问题:当我将鼠标悬停在编辑图标上时,它开始闪烁。

class TempComponent extends React.Component {
constructor() {
super()
this.editModeToggler = this.editModeToggler.bind(this)
this.state = {
editMode: false
}
}

editModeToggler() {
console.log('called')
this.setState({editMode: !this.state.editMode})
}

render() {
return(
<div>
<h3
onMouseOut={this.editModeToggler}
onMouseOver={this.editModeToggler}
>
Title
</h3>
{this.state.editMode?
<img src='http://www.rebanet.it/images/banners/iscrizioni.png' />
:
null
}
</div>
)
}
}

您可以在此处找到运行的代码:http://jsfiddle.net/Lu4w4v1c/2/

如何停止这种闪烁。 我也尝试按照建议使用 onMouseEnter 和 onMouseLeave here但它没有用。我不知道如何使用这两个事件导致与我想要的相反。第一次加载组件时,一切都很好,但是一旦我将鼠标悬停在图标上,整个动态就会发生变化。当鼠标不在标题上时图标显示,当鼠标在标题上时不显示。请帮忙

onMouseEnter 和onMouseLeave 的代码在这里结束:http://jsfiddle.net/Lu4w4v1c/3/

最佳答案

当你在 h3 上有监听器时,最初图像没有渲染所以第一次一切似乎都工作正常,但是一旦图像被渲染并且你将鼠标悬停在图像上它响应标题的 mouseout 事件并立即隐藏图像,这反过来会触发 h3 上的鼠标悬停,从而导致闪烁行为。

要解决您的问题,您只需将监听器附加到容器上即可。更新了你的 fiddle http://jsfiddle.net/Lu4w4v1c/4/

<div  onMouseOut={this.editModeToggler} 
onMouseOver={this.editModeToggler}>
<h3>
Title
</h3>
{this.state.editMode?
<img src='http://www.rebanet.it/images/banners/iscrizioni.png' />
:
null
}
</div>

关于reactjs - 有条件地渲染图像时 React 中的图像闪烁问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41218108/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com