reactjs - 通过创建动态选择来响应 useRef 钩子
问题描述
在构建选择期间,我需要验证没有创建重复的“选项”元素。
我认为一种方法是使用 useRef 钩子。但我对这种行为感到困惑。我确定我做错了什么,或者我没有考虑某些方面。
我写了一个小示例代码,如下所示:
import React, { useRef } from "react";
import "bootstrap/dist/css/bootstrap.min.css";
import { Form } from "react-bootstrap";
export default function App() {
const options = ["de-de", "en-gb", "es-es", "fr-fr", "it-it", "nl-be"];
let selectRef = useRef(null);
return (
<div className="App">
<Form>
<Form.Group>
<Form.Control as="select" custom ref={selectRef}>
{options.map((cc) => {
console.log("selectRef", selectRef, "cc", cc);
return (
<option key={cc} value={cc}>
{cc}
</option>
);
})}
</Form.Control>
</Form.Group>
</Form>
</div>
);
}
我添加了一个指向https://stackblitz.com的链接,其中显示了示例的代码:https ://stackblitz.com/edit/react-jlwttg?file=src/App.js
这种行为很奇怪:每次在控制台上添加一个新选项的迭代中,我看到我的引用的当前值已经包含所有元素。这怎么可能?我在哪里做错了?另外,我注意到如果我刷新我的页面,我的引用总是空的。
我提前谢谢你。
解决方案
推荐阅读
- sql - 有什么办法可以将聚合添加到我的代码中,因为有一个窗口函数,我也欢迎任何关于调整代码的帮助
- python - 这个正则表达式与这个列表理解结合起来做什么?
- javascript - onfullscreenchange iOS javascript web
- kotlin - Processing and aggregating data from multiple servers efficiently
- c++ - Please help me to resolve my mistake in the following code. I used stack in it
- angular - export pdf using angular ignie UI for angular
- java - How to capture video from camera,process it (do some task on it),then show it real-time on the screen to the user in android?
- python - 如何在方法之后多次使用 Tkinter,或者是否有替代方法?
- css - Bootstrap Popover on SVG icon - Wrong Arrow Direction
- electron - Open file in existing electron window instead of creating new one in Windows