在复制文本后如何向用户显示“复制文本”?
const dataArray = [ { title: "Invoice Reference Number", content:QRCODE_SAMPLE.Irn } ];
<TouchableOpacity activeOpacity={1}
onPress={() => Clipboard.setString(QRCODE_SAMPLE.Irn)}>
<Accordion style={{paddingTop:10,paddingBottom:50,backgroundColor:'#E0DDDD'}}dataArray={dataArray} expanded={1}>
</Accordion>
</TouchableOpacity>
我以前从未使用过剪贴板,但我假设您的代码正在运行,然后:
const [clipboardString, setClipboardString] = useState('');
handleClipboardAction = (str) => () => {
Clipboard.setString(str);
setClipboardString(setClipboardString)
}
<TouchableOpacity activeOpacity={1}
onPress={handleClipboardAction(str)}>
<Accordion style={{paddingTop:10,paddingBottom:50,backgroundColor:'#E0DDDD'}}dataArray={dataArray} expanded={1}>
</Accordion>
</TouchableOpacity>
然后您可以观察状态以查看是否有任何复制,并有条件地渲染“文本已复制”消息:
{clipboardString.length > 0 && <Text>Text is copied</Text>}
您可以这样操作:
import {ToastAndroid} from 'react-native';
创建此功能:
onCopyPressed(){
Clipboard.setString(QRCODE_SAMPLE.Irn);
ToastAndroid.show('A pikachu appeared nearby !', ToastAndroid.SHORT);
}
并像这样调用该函数:
const dataArray = [ { title: "Invoice Reference Number", content:QRCODE_SAMPLE.Irn } ];
<TouchableOpacity activeOpacity={1}
onPress={this.onCopyPressed.bind(this)}>
<Accordion style={{paddingTop:10,paddingBottom:50,backgroundColor:'#E0DDDD'}}dataArray={dataArray} expanded={1}>
</Accordion>
</TouchableOpacity>