由于我是React Native的新手,因此我将尽可能详细地说明这一点,也许这也会对其他人有所帮助✨。我正在使用React Native超级网格库,该库内部使用FlatList和SectionList来呈现网格布局。网格通过来自单独const的props填充文本我正在尝试做的是:当用户点击FlatList中的任何项目时,被点击的项目将被复制到剪贴板,并显示一条警报,确认已被复制。现在发生的事情:每个项目都是可轻敲的,并且正确的警报显示在onPress上,确认您已复制到剪贴板,但实际上没有任何内容写入剪贴板。为了确保writeToClipboard正常工作,我在其中有一条静态消息,上面写着“至少可以使剪贴板工作正常”,因此,如果您轻按任何一项,则该静态消息将被成功复制到剪贴板。我只是不确定如何将被点击的特定项目复制到剪贴板。这是网格组件的代码:import React, { Component } from "react";import { StyleSheet, Alert, View, Text, TouchableOpacity, Clipboard, Button, onPress} from "react-native";import { FlatGrid } from "react-native-super-grid";class Emojigrid extends Component { constructor(props) { super(props); this.state = { text: "WELL AT LEAST THE CLIPBOARD WORKS", clipboardContent: null }; } writeToClipboard = async () => { await Clipboard.setString(this.state.text); alert("Boom, Copied"); }; render() { return ( <FlatGrid itemDimension={130} items={items} style={styles.gridView} // staticDimension={300} // fixed spacing={2} renderItem={({ item, index }) => ( <View style={[styles.itemContainer, { backgroundColor: "#F7F7F7" }]}> <TouchableOpacity onPress={this.writeToClipboard}> <Text style={styles.itemName}>{item.name}</Text> </TouchableOpacity> </View> )} /> ); }}export default Emojigrid;const items = [ { name: "¯_(ツ)_/¯" }, { name: "ʕ·͡ᴥ·ʔ" }, { name: "•`_´•" },];const styles = StyleSheet.create({ gridView: { marginTop: 0, marginBottom: 400, flex: 1 }, itemContainer: { justifyContent: "center", alignItems: "center", borderRadius: 0, height: 125 }, itemName: { fontSize: 18, color: "black", fontWeight: "400" }});认为答案可能很明显,但是任何帮助都将不胜感激!
添加回答
举报
0/150
提交
取消
