复制文本后如何向用户显示“复制的文本”?

问题描述 投票:1回答:2

在复制文本后如何向用户显示“复制文本”?

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> 
react-native native-base touchableopacity
2个回答
0
投票

我以前从未使用过剪贴板,但我假设您的代码正在运行,然后:

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>}

0
投票

您可以这样操作:

    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> 
© www.soinside.com 2019 - 2024. All rights reserved.