reactjs - 怎么做
问题描述
解决方案
我可以想象的一件事是渲染第二个不可见并使用当前选定的值(在您的情况下)select
仅向其中添加一个元素。
然后,您始终可以使用 a 将可见选择宽度设置为不可见选择的宽度以检测大小变化:option
selectedCategorie
ResizeObserver
const Select = () => {
const [selectWidth, setSelectWidth] = React.useState(undefined)
const [selectedCategorie, setSelectedCategorie] = React.useState("sqddsq");
React.useEffect(() => {
const resize_ob = new ResizeObserver(([entry]) => setSelectWidth(entry.contentRect.width));
resize_ob.observe(document.querySelector("#width_tmp_select"));
return () => resize_ob.disconnect();
}, [])
return (
<div>
<select
value={selectedCategorie}
onChange={(e) => {
setSelectedCategorie(e.target.value)
}}
style={{ width: selectWidth, fontSize: "16px" }}>
<option>Toutes nos categories</option>
<option>MMMMMMMMMMMMMMMMMMMMM</option>
<option>sqddsq</option>
<option>jhgjgjg</option>
<option>wxcwxc</option>
</select>
<select id="width_tmp_select" style={{fontSize: "16px", visibility: "hidden"}}>
<option>{selectedCategorie}</option>
</select>
</div>
);
};
ReactDOM.render(
<Select />,
document.getElementById('root')
);
推荐阅读
- json - 使用 jq 基于另一个键名更新 json 的键
- javascript - Chrome 扩展:返回的窗口变量不在扩展中更新,但在页面源中更新
- php - 将 codeigniter 4 与 postgres 连接时出现问题 - CodeIgniter\Database\Exceptions\DatabaseException #8
- python - 执行 randomSearchCV 时传递了多个评估指标
- sql - 有没有办法在 PosgreSQL/PostGIS 中运行一个查询而不是这两个
- javascript - Webpacker 没有在生产中缩小 JS
- android - 电子邮件服务器更改 URL 时的 iOS 通用链接/Android 应用程序链接
- php - 将简码函数插入 php 行
- javascript - How to pass the value of a PHP function to a Javascript variable?
- java - 如何在 Java 中抓取我想要的 HTML 数据?