我正在制作一个简单的反应应用程序,其中有两个不同的div's..
具有选择输入和选定列表的一个,
<div id="container">
<div className="_2iA8p44d0WZ">
<span className="chip _7ahQImy">Item One</span>
<span className="chip _7ahQImy">Item Two</span>
<span className="chip _7ahQImy">Item Three</span>
<span className="chip _7ahQImy">Item Four</span>
<span className="chip _7ahQImy">Item Five</span>
<input
type="text"
className="searchBox"
id="search_input"
placeholder="Select"
autoComplete="off"
value=""
/>
</div>
</div>
另一个会将所选选项列出为fieldset,
<div>
{selectedElements.map((item, i) => (
<div key={i} className="selected-element" ref={scrollDiv}>
<fieldset>
<legend>{item}</legend>
</fieldset>
</div>
))}
</div>
基于这个解决方案,我已添加createRef到所选元素,例如,
<div key={i} className="selected-element" ref={scrollDiv}>
</div>
然后我采用 Javascript 查询方法来获取 DOM 元素,例如,
const chipsArray = document.querySelectorAll("#container > div > .chip");
向所有元素添加了单击事件侦听器,例如,
chipsArray.forEach((elem, index) => {
elem.addEventListener("click", scrollSmoothHandler);
});
然后scrollSmoothHandler就像,
const scrollDiv = createRef();
const scrollSmoothHandler = () => {
console.log(scrollDiv.current);
if (scrollDiv.current) {
scrollDiv.current.scrollIntoView({ behavior: "smooth" });
}
};
但这并没有按预期工作。
弑天下
相关分类