如何让 onPress 在 TextInput 内的 React Native Text 元素上触发?

Posted

技术标签:

【中文标题】如何让 onPress 在 TextInput 内的 React Native Text 元素上触发?【英文标题】:How can I get onPress to fire on a React Native Text element inside a TextInput? 【发布时间】:2021-04-30 00:53:29 【问题描述】:

出于样式的目的,我有多个 Text 元素作为 TextInput 的子元素。我希望用户点击它们以激活模式(该 Text 元素独有),但是我无法让 onPress 事件起作用。这是一个简化的例子:

<TextInput>
  <Text onPress=() => console.log(1)>touch me</Text>
</TextInput>

“触摸我”是可编辑的,正如您在 TextInput 中所期望的那样,但 onPress 在被点击时不会触发。

有没有办法让这个设置按我的意愿工作?

【问题讨论】:

所以你的意思是当你点击文本元素时 coonsole.log 不打印 1? @Sakshi 没错 【参考方案1】:

您可以将其包装在 TouchableOpacity 中:

const [value, setValue] = useState('Press me');

return <TouchableOpacity onPress=() => alert("Hello world")>
  <TextInput
    value=value
  />
</TouchableOpacity>

【讨论】:

感谢您的回答。对不起,我应该更清楚,但我希望每个 Text 元素的模态对于该特定元素都是唯一的。如果有办法引用被触摸的特定子元素,那么它就可以工作。

以上是关于如何让 onPress 在 TextInput 内的 React Native Text 元素上触发?的主要内容,如果未能解决你的问题,请参考以下文章

Qt/QML:带有 Keys.onPressed 的 TextInput 仅接收 DEL 键而不接收其他键

React Native:onBlur 在 onPress 之后触发

如何检索文本输入在按钮上输入的值单击React Native中的onPress?

React Native 改变视图 onPress

解决TextInput点击输入框外面没有触发onBlur

React Native:如何让 <TextInput/> 从右到左开始?