我正在使用react native制作一个android应用程序,我已经使用TouchableOpacity组件来创建按钮。 我使用一个文本输入组件来接受来自用户的文本,并且该按钮只应该在文本输入匹配某个字符串时启用。 我可以想到一种方法来做到这一点,即最初呈现按钮而不使用TouchableOpactiy包装器,并在输入字符串匹配后使用包装器重新呈现。 但我猜有更好的办法。有人能帮忙吗?


当前回答

你可以用TouchableWithoutFeedback构建一个CustButton,并设置你想要的onPressIn, onpresout或其他道具的效果和逻辑。

其他回答

因此,在react native中禁用任何按钮是非常容易的

<TouchableOpacity disabled={true}>
    <Text> 
          This is disabled button
   </Text>
</TouchableOpacity>

Disabled是react native中的一个道具,当你将它的值设置为“true”时,它将禁用你的按钮

快乐Cooding

TouchableOpacity扩展了TouchableWithoutFeedback,所以你可以只使用disabled属性:

<TouchableOpacity disabled={true}>
  <Text>I'm disabled</Text>
</TouchableOpacity>

React Native TouchableWithoutFeedback #禁用文档

新的可压API也有一个禁用选项:

<Pressable disabled={true}>
  {({ pressed }) => (
    <Text>I'm disabled</Text>
  )}
</Pressable>

使用禁用的true属性

<TouchableOpacity disabled={true}> </TouchableOpacity>

这个土生土长的基础有一个解决方案:

<Button
    block
    disabled={!learnedWordsByUser.length}
    style={{ marginTop: 10 }}
    onPress={learnedWordsByUser.length && () => {
      onFlipCardsGenerateNewWords(learnedWordsByUser)
      onFlipCardsBtnPress()
    }}
>
    <Text>Let's Review</Text>
</Button>

要禁用文本,你必须在文本样式中设置不透明度:0,如下所示:

<TouchableOpacity style={{opacity:0}}>
  <Text>I'm disabled</Text>
</TouchableOpacity>