我正在制作一个简单的 react 应用程序,其中有两个不同的
其中一个包含选择输入和所选列表,
div
。其中一个包含选择输入和所选列表,
<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" });
}
};
但是这并没有按照预期的方式工作。
要求:
点击第一个div
中的任何项目时,另一个div中相关的fieldset需要平滑滚动
。
例如:
如果用户单击元素Item Four
,则相关的fieldset需要滚动进入。这里的fieldset与标题为Item Four
的内容相关。
我认为还要在React上使用js dom查询方法,并且它似乎不是一种React的实现方式。请问有谁可以帮助我在选择项目上单击以滚动到相关的fieldset呢?
{ ContactMode: 1 }
... - Undefined