我有一个联系我的部分,我有电子邮件ID,所以我希望当人们点击电子邮件ID的电子邮件ID被复制到他们的剪贴板。
这是密码
return (
<InfoContainer lightBg={lightBg} id={id}>
<InfoWrapper>
<InfoRow imgStart={imgStart}>
<Column1>
<TextWrapper>
<TopLine>{topLine}</TopLine>
<Subtitle darkText={darkText}>{headLine}</Subtitle>
<Heading lightText={lightText}>{description}</Heading>
<Subtitle darkText={darkText}>{headLine2}</Subtitle>
</TextWrapper>
</Column1>
<Column2>
<ImgWrap>
<Img src={img} alt={alt} />
</ImgWrap>
</Column2>
</InfoRow>
</InfoWrapper>
</InfoContainer>
)
}
由于这是可重用组件的一部分,我使用了在单独文件中定义的light Text
和黑暗文本
之类的东西,因此很容易重用。
我正在从一个看起来像这样的data.js文件中传递数据,
export const homeObjThree = {
id: 'experience',
lightBg: false,
lightText: true,
lightTextDesc: true,
topLine: 'Contact Me',
headLine: 'you can reach out to me at:' ,
description:'devangmukherjee@gmail.com',
headLine2: 'Or simply just drop by a hello :)',
imgStart: false,
img: experience,
alt: 'alt line does not always have to boring',
dark: true,
primary: true,
darkText: true,
};
我传递的描述
是电子邮件ID,这是我唯一想要复制的东西。
标题
是样式化组件,如下所示
export const Heading = styled.h1`
color: #fff;
margin-bottom: 24px;
font-size: 30px;
line-height: 1.1 ;
font-weight: 600;
color: ${({ lightText }) => (lightText ? '#f7f8fa' : '#010606')};
@media screen and (max-width: 480px) {
font-size: 18px;
}
`;
我怎样才能让它看起来像一个链接?可能是当人们将鼠标悬停在文本上方,并在其上加下划线,然后单击该文本时,该文本会被复制,而该文本会被复制。
我试着让这项工作从——在reactJS中,如何将文本复制到剪贴板?
但是没有用。请帮帮我。
更新:对于onCopy()
我尝试了这个,但出现了一个错误
const InfoSection = ({
lightBg,
imgStart,
topLine,
lightText,
headLine,
description,
headLine2,
img,
alt,
id,
darkText,
}) => {
state = {
value: '',
copied: false,
};
return (
<InfoContainer lightBg={lightBg} id={id}>
<InfoWrapper>
<InfoRow imgStart={imgStart}>
<Column1>
<TextWrapper>
<TopLine>{topLine}</TopLine>
<Subtitle darkText={darkText}>{headLine}</Subtitle>
<CopyToClipboard text={description} onCopy={() => this.setState({copied: true})}>
<Heading lightText={lightText}>{description}</Heading>
</CopyToClipboard>
{this.state.copied ? <span style={{color: '#01BF71'}}>Copied.</span> : null}
<Subtitle darkText={darkText}>{headLine2}</Subtitle>
</TextWrapper>
</Column1>
<Column2>
<ImgWrap>
<Img src={img} alt={alt} />
</ImgWrap>
</Column2>
</InfoRow>
</InfoWrapper>
</InfoContainer>
)
}
错误'state'没有定义no-undef
我如何定义这里的状态?
如果你想使用react-拷贝到剪贴板
库,
你应该这样包装标题
:
import {CopyToClipboard} from 'react-copy-to-clipboard';
...
<CopyToClipboard text={description}>
<Heading lightText={lightText}>{description}</Heading>
<CopyToClipboard>
关于使文本看起来像一个链接,您可以将此css添加到标题
:
css prettyprint-override">cursor: pointer;
&:hover {
text-decoration: underline;
}
编辑:
为了在下面显示复制的内容,您需要有一个状态,在使用copytClipboard
组件的onCopy
prop复制文本时更改其值,如下所示:
const InfoSection = ({
lightBg,
imgStart,
topLine,
...
}) => {
const [copied, setCopyStatus] = React.useState(false)
...
<CopyToClipboard text={description} onCopy={() => setCopyStatus(true)}>
<Heading lightText={lightText}>{description}</Heading>
<CopyToClipboard>
{copied ? <span style={{color: 'red'}}>Copied.</span> : null)}
}
我有一个角9应用程序,我需要得到一个复制到剪贴板的url复制时,点击。这是我目前所掌握的: 它复制,但不是在第一次尝试,只有在第二次尝试,它是安慰。然后点击叠加,所以第三次点击显示它被点击了3次。为什么?我在这里做错了什么?
问题内容: 如何将BufferedImage存储到系统剪贴板中? 问题答案: 这是从这里获得的工作代码,已成功测试
将一个字符串复制到剪贴板。 仅作为用户操作的结果(即,在 click 事件侦听器中)。 创建一个新的 <textarea> 元素,用提供的数据填充它,并将其添加到 HTML 文档中。 使用 Selection.getRangeAt() 来存储选择的范围(如果有的话)。 使用 document.execCommand('copy') 复制到剪贴板。 从HTML文档中删除 <textarea> 元素。
问题内容: 我正在使用此功能将URL复制到剪贴板: 在桌面浏览器上一切正常,但在iOS设备上无法正常运行,在iOS设备上我的函数成功返回,但是数据根本没有复制到剪贴板。是什么原因造成的,我该如何解决这个问题? 问题答案: 更新!iOS> = 10 看起来像是在选择范围和一些小技巧的帮助下,可以直接复制到iOS(> = 10)Safari上的剪贴板。我在iPhone 5C iOS 10.3.3和iP
我正在使用这个函数将一个URL复制到剪贴板: 在桌面浏览器上一切正常,但在iOS设备上就不行了,在iOS设备上我的函数成功返回,但数据根本没有复制到剪贴板上。是什么原因造成的?我该如何解决这个问题?
问题是,从vim到剪贴板的复制/粘贴停止工作。我不知道为什么。。。 在中,我也没有看到和缓冲区... 这是我的。vimrc,如果需要的话。 有什么建议吗? 谢谢