如何在 react-native 中将文本复制到剪贴板?

Lee*_*eli 18 javascript text onclick button react-native

我想集成一个小文本(我的电子邮件地址),但我希望用户可以复制此文本。我想到了一个按钮,当我们点击它时,电子邮件地址是复制的,可以在应用程序之外过去。这该怎么做?

<View>
<Text style={{color: 'red', fontSize: 14 , fontFamily:'Arial', fontStyle: 'bold', textAlign: 'center', marginTop: 3, marginLeft: 25, marginBottom: 17}}> 
             mail@mail.com
</Text></View>
Run Code Online (Sandbox Code Playgroud)

我是新手,任何帮助将不胜感激。

fay*_*eed 35

您可以Clipboard从 @react-native-community 使用

使用方法如下:

import Clipboard from '@react-native-community/clipboard';

<TouchableOpacity onPress={() => Clipboard.setString('mail@mail.com')}>
  <View>
    <Text style={{color: 'red', fontSize: 14 , fontFamily:'Arial', fontStyle: 'bold', textAlign: 'center', marginTop: 3, marginLeft: 25, marginBottom: 17}}> 
                mail@mail.com
    </Text>
  </View>
</TouchableOpacity>
Run Code Online (Sandbox Code Playgroud)

  • 剪贴板已从react-native核心中删除,应从“@react-native-community/clipboard”安装 (4认同)

小智 32

将 Text 组件的 selectable 属性设置为 true,长按文本即可将内容复制到剪贴板。

<Text selectable={true}>
  Your text
</Text>
Run Code Online (Sandbox Code Playgroud)


Fer*_*nch 9

因为我猜人们可能会使用expo,所以你需要另一个库。

expo install expo-clipboard
Run Code Online (Sandbox Code Playgroud)
import * as Clipboard from 'expo-clipboard';

// Then just do like in the accepted solution:
Clipboard.setString('mail@mail.com');
Run Code Online (Sandbox Code Playgroud)

解决方案取自: https://github.com/react-native-clipboard/clipboard/issues/110#issuecomment-931340618