Эта проблема, вероятно, возникает из-за моего непонимания ref
с.
У меня есть этот контейнер, который я рендеринг из массива.
Допустим, будет отображаться 4 контейнера. Каждый контейнер будет иметь 3 ссылки. При наведении курсора на одну из ссылок появляется значок буфера обмена. Используя библиотеку react-copy-to-clipboard
, я копирую содержимое этого конкретного элемента в буфер обмена. Однако моя проблема в том, что он копирует только последний элемент 4-го контейнера вместо того, который я навесил или выбрал. Я чувствую, что это также может быть связано с индексом?
Я надеюсь, что кто-то сможет объяснить, почему это происходит, и помочь мне найти решение.
handleMouseEnter = index => {
this.setState(prevState => ({
isHovered: {
...prevState.isHovered,
[index]: true,
},
ref: this.textRef.current.attributes.label.nodeValue,
}));
};
<LinkContainer className="linkContainer">
{links.map(({ name, path }, index) => (
<ul className="styledLinks">
<li
onMouseEnter={() => this.handleMouseEnter(index)}
onMouseLeave={() => this.handleMouseLeave(index)}
>
<StyledLinks
key={name}
ref={this.textRef}
value={name}
label={path}
/>
{isHovered[index] && (
<CopyToClipboard
onCopy={this.copy}
text={ref}
>
<StyledCopyIcon
icon="copy"
className="copyIcon"
copySucces={copySuccess}
onClick={this.setCopySuccess}
/>
</CopyToClipboard>
)}
</li>
</ul>
))}
</LinkContainer>