为什么我需要在 TouchableOpacity 上点击两次?
Why do I need to click twice on the TouchableOpacity?
我想创建一个按钮,如果您点击它,您会复制该按钮的颜色。
但是我需要点击两次才能复制我的颜色(第一次我什么都不复制)
有人可以帮助我或告诉我我在哪里犯了错误吗?
这是我的代码:
const [couleur, setCouleur] = useState("");
async function cop() {
await navigator.clipboard.writeText(couleur);
alert("Couleur copiée");
}
<TouchableOpacity
onPress={() => {
setCouleur("black");
cop();
}}
>
<View
style={{
width: "100%",
height: 30,
backgroundColor: "#ADDAD4",
}}
>
<Text style={styles.textcol}>green-8</Text>
</View>
</TouchableOpacity>
textcol: {
fontSize: 12,
marginLeft: "75%",
fontWeight: "300",
textAlign: "center",
alignItems: "center",
alignSelf: "center",
marginTop: "2%",
color: "white",
fontStyle: "italic",
},
你需要做两件事:
<TouchableOpacity
onPress={() => {
setCouleur("#black");
}}
>
并在开头添加一个 UseEffect:
useEffect(() => {
if (couleur !== "") {
cop();
} },[couleur]);
我想创建一个按钮,如果您点击它,您会复制该按钮的颜色。 但是我需要点击两次才能复制我的颜色(第一次我什么都不复制) 有人可以帮助我或告诉我我在哪里犯了错误吗? 这是我的代码:
const [couleur, setCouleur] = useState("");
async function cop() {
await navigator.clipboard.writeText(couleur);
alert("Couleur copiée");
}
<TouchableOpacity
onPress={() => {
setCouleur("black");
cop();
}}
>
<View
style={{
width: "100%",
height: 30,
backgroundColor: "#ADDAD4",
}}
>
<Text style={styles.textcol}>green-8</Text>
</View>
</TouchableOpacity>
textcol: {
fontSize: 12,
marginLeft: "75%",
fontWeight: "300",
textAlign: "center",
alignItems: "center",
alignSelf: "center",
marginTop: "2%",
color: "white",
fontStyle: "italic",
},
你需要做两件事:
<TouchableOpacity
onPress={() => {
setCouleur("#black");
}}
>
并在开头添加一个 UseEffect:
useEffect(() => {
if (couleur !== "") {
cop();
} },[couleur]);