[英]How to get value of selected option in a dropdown using React Js?
我正在尝试使用 React Js 获取下拉列表的选定值。
它给出了价值观,但给出了错误的价值观
请在下面找到我的代码。
<select
name="category-select-1"
class="form-select category-select"
id="category-select-1"
value={eventCategory}
onChange={handleEventCategory}>
<option value={"default"}>Category</option>
<option value={"meeting"}>Meeting</option>
<option value={"workhours"}>Work Hours</option>
<option value={"business"}>Business</option>
<option value={"holiday"}>Holiday</option>
<option value={"getTogether"}>Get-Together</option>
<option value={"gifts"}>Gifts</option>
<option value={"birthday"}>Birthday</option>
<option value={"anniversary"}>Anniversary</option>
<option value={"others"}>Others</option>
</select>
这就是我正在尝试的方法。
const [eventCategory, setEventCategory] = useState();
const handleEventCategory = (e)=>{
setEventCategory(e.target.value);
console.log(eventCategory);
}
它从选项中随机给出值。 请帮我解决这个问题。 谢谢
在 React 中设置 state 就像异步 function 一样。
这意味着当您设置 state 并在其后放置一个console.log
时,它可能会在 state 实际完成更新之前运行。
这就是我们使用useEffect
的原因,这是一个内置的 React 钩子,当其中一个依赖项发生更改时,它会激活回调。
例子:
useEffect(() => {
console.log(eventCategory)
// Whatever else we want to do after the state has been updated.
}, [eventCategory])
只有在 state 完成更改并发生渲染后,此console.log
才会运行。
查看文档以获取有关此的更多信息。
你的代码看起来不错。
const handleEventCategory = (e)=>{
setEventCategory(e.target.value);
console.log(eventCategory);
}
console.log(eventCategory);
由于 setState 是异步的,因此在更改 state 之前打印 eventCategory 值。 如果你在handleEventCategory下面添加console.log,你会得到正确的output。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.