📌  相关文章
📜  如何将文本复制到 React.js 中的剪贴板?

📅  最后修改于: 2022-05-13 01:56:55.484000             🧑  作者: Mango

如何将文本复制到 React.js 中的剪贴板?

以下示例介绍了如何使用useState()挂钩将文本复制到 React JS 中的剪贴板。

先决条件:

  • npm & create-react-app 命令的基础知识。
  • 样式组件的基本知识。
  • useState() React hooks 的基础知识。

基本设置:您将使用create-react-app使用以下命令启动一个新项目:

npx create-react-app react-copy-text

现在通过在终端中键入给定的命令转到您的react-copy-text文件夹。

cd react-copy-text

所需模块:通过在终端中键入给定命令来安装此项目所需的依赖项。

npm install --save styled-components
npm install --save react-copy-to-clipboard

现在在 src 中创建components文件夹,然后转到 components 文件夹并创建两个文件Clipboard.jsStyles.js

项目结构:项目中的文件结构将如下所示。

示例:我们创建一个状态,第一个元素 copyText 作为初始状态,其值为空字符串,第二个元素作为函数setCopyText()用于更新状态。然后通过名称handleCopyText创建一个函数,它将状态值设置为我们输入输入字段的文本。创建另一个函数copyToClipboard以将更新的状态值复制到剪贴板。

当我们在输入字段中输入文本时,handleCopyText函数通过onChange 事件触发,该事件将状态设置为输入的值。现在,当我们单击“复制到剪贴板”按钮时,函数copyToClipboard 通过onClick 事件触发,该事件使用copy()函数将状态值复制到剪贴板。现在我们可以通过单击Ctrl+V键将文本复制到任何地方。

Clipboard.js
import React,{useState} from 'react'
import copy from "copy-to-clipboard";  
import { Heading, Input1, Input2, Container, Button } from './Styles'
  
const Clipboard = () => {
    const [copyText, setCopyText] = useState('');
  
    const handleCopyText = (e) => {
       setCopyText(e.target.value);
    } 
    
    const copyToClipboard = () => {
       copy(copyText);
       alert(`You have copied "${copyText}"`);
    }
      
    return (
      
        GeeksForGeeks                                                                                  
    ) }    export default Clipboard;


Styles.js
import styled from 'styled-components';
  
export const Container = styled.div`
   width: 600px;
   margin: 40px auto;
   position: relative;
`
export const Heading = styled.h1`
   text-align: center;
   color: green;
`;
  
export const Input1 = styled.input`
   height: 50px;
   width: 100%;
   padding: 0;
   font-size: 25px;
`
export const Input2 = styled.input`
   height: 50px;
   width: 100%;
   padding: 0;
   font-size: 25px;
   margin-top: 70px;
`
  
export const Button = styled.button` 
  padding: 20px; 
  font-size: 20px; 
  position: relative; 
  left: 30%; 
  margin-top: 10px; 
  cursor: pointer;
`;


App.js
import Clipboard from './components/Clipboard'
  
function App() {
  return (
    
  );
}
  
export default App;


样式.js

import styled from 'styled-components';
  
export const Container = styled.div`
   width: 600px;
   margin: 40px auto;
   position: relative;
`
export const Heading = styled.h1`
   text-align: center;
   color: green;
`;
  
export const Input1 = styled.input`
   height: 50px;
   width: 100%;
   padding: 0;
   font-size: 25px;
`
export const Input2 = styled.input`
   height: 50px;
   width: 100%;
   padding: 0;
   font-size: 25px;
   margin-top: 70px;
`
  
export const Button = styled.button` 
  padding: 20px; 
  font-size: 20px; 
  position: relative; 
  left: 30%; 
  margin-top: 10px; 
  cursor: pointer;
`;

应用程序.js

import Clipboard from './components/Clipboard'
  
function App() {
  return (
    
  );
}
  
export default App;

运行应用程序的步骤:从项目的根目录使用以下命令运行应用程序:

npm start

输出:现在打开浏览器并转到http://localhost:3000/ ,您将看到以下输出: