【发布时间】:2020-02-16 13:55:32
【问题描述】:
我正在使用 React 构建我的网站,并且我正在使用 useState 来获取悬停项目的 id。
但是当我使用 setState 获取值时,它不会更新并保持为“空”
所以在控制台上,我可以看到 event.target.id 被识别,但即使在 setState 事件之后,状态值也返回 null。
谁能提供一些关于这里发生了什么的线索?
这是代码
import React from 'react'
import { BrowserRouter as Router, Route, Link } from 'react-router-dom'
import styled from 'styled-components'
const WorksTitle = props => {
const { type, title, imgSrc, link, year } = props
const [currentMenu, setCurrentMenu] = React.useState(null)
const handleHover = event => {
console.log(
'event target: ',
event.target,
' / ',
'event target id: ',
event.target.id
)
**console.log(event.target.id)
setCurrentMenu(event.target.id)
console.log(currentMenu)**
}
const handleMouseOut = event => {
console.log('mouse out from:', event.target.id)
setCurrentMenu(null)
}
return (
<StyledWorksTitle>
<TitleItem id={title} onMouseOverCapture={handleHover} onMouseOut={handleMouseOut}>
<div className={`itemWrapper ${(currentMenu === { title } ||
currentMenu === null) && 'activated'}`}
id={title}>
<Link to={link}></Link>
</div>
</TitleItem>
</StyledWorksTitle>
)
}
/* styled-components */
export default WorksTitle
【问题讨论】:
标签: javascript reactjs