为什么我需要在 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]);