我是一名新的 React-Native 开发人员。我想使用 onPress 获取 Text 组件的值并将其传递给函数。
<Text onPress={()=>this.display}>Hello World</Text>
display= (text) =>{
console.log(text);//this should print Hello world
}
此方法可用于从文本 onPress 事件中获取文本
<Text onPress={(event) => console.log(event._dispatchInstances.memoizedProps.children)} >{value}</Text>
我不是 React Native 方面的专家。我从这个Stackoverflow链接
得到了一些想法但我认为你可以在
ref
组件上设置一个 Text
<Text ref={(elem) => this.textElem = elem} onPress={()=>this.display}>Hello World</Text>
对于您的事件处理程序,您可以执行以下操作
display = () =>{
console.log(this.textElem.props.children);//this should print Hello world
}
onPress={(e) => console.log(e, word)}
类 {dispatchConfig: {…}...} 'word'
word 参数将携带组件内部文本的值,e 将携带事件对象。
实际例子:
const wordSelected = (e, word) => {
console.log(word);
};
<TouchableOpacity onPress={(e) => wordSelected(e, word)}>
<Text>print me out</Text>
</TouchableOpacity>
把我打印出来
您需要可以使用 ref 属性来访问按钮的 Text 值。
<Text ref='myText'>This is my text</Text>
<Button onPress={()=>this.display(this.refs.myText.props.children)} title='Press Me'/>
//this should print Hello world
display= (text) =>{
console.log(text);
}
或者,只需将其存储在变量中:
const myText = "This is my text"
<Text onPress={()=>this.display}>{myText}</Text>
display = () => {
console.log(myText);
}
<Text onPress={()=>this.display('Hello World')}></Text>
display= (text) =>{
console.log(text);//this should print Hello world
}
试试这个