javascript - UseState() 在 useEffect() 中返回正确的值,但函数内部没有任何内容
问题描述
我面临以下代码的问题:
const [selectedItem, setSelectedItem] = useState("")
useEffect(() => {
console.log("effect: " + selectedItem)
}, [selectedItem])
const myFunc = () => {
console.log(selectedItem)
setSelectedItem("2")
console.log(selectedItem)
}
会发生什么,是我更新了SelectedItem()
in myFunc
。在useEffect()
循环selectedItem
中正确打印。但是在myFunc
我不断得到一个空字符串(初始状态),无论我触发了多少次函数。
我的代码相对复杂 - 通常它包括几个 DOM 更新,因为我正在递归地构建一个带有无序列表的树视图。
myFunc
单击其中一个元素时会触发——<li>
但这会导致 的相当奇怪的行为UseState()
吗?
我知道这useState()
可以说是一个异步函数——但这可能不是这里的问题,因为多次触发该函数仍然会打印“”。
解决方案
推荐阅读
- jquery - How to push values to Array as 2d array jquery
- java - Maven cxf-xjc-plugin xpath not working as expected inside bindings file
- docusignapi - Docusign API sending envelop not showing in recipient's account
- git - Git: Cannot change author name/committer name with $ git config --global user.name
- c# - 如何在复选框周围添加效果
- azure - 将端点 VPN 客户端连接到 azure 中的多个 vnet
- r - 当A列数据最大时如何从B列中提取数据?在 R 中
- python - 如何在 selenium python 中同时使用多个浏览器实例?
- html - 按钮浮动到输入表单 HTML 的右侧
- dialog - Blazor 同步确认同步融合