我知道,本机反应的做法是使用onChangeText
来更改值,如下所示。
<TextInput
onChangeText = {(text)=> this.setState({myText: text})}
value = {this.state.myText}
/>
但是,我想知道我是否可以做这样的事情。总而言之,我想遍历所有TextInput
并得到ref
和value
。我只想按照以下步骤在javascript way
中进行操作。可以做到吗?
<TextInput id="id1" ref={ref => (this.remark = ref)} />
<TextInput id="id2" ref={ref => (this.remark1 = ref)} />
onSubmit = () => {
forEach(TextInput in component) {
console.log(TextInput.id) <- note id is custom property
console.log(TextInput.refName)
console.log(TextInput.value)
}
}
答案 0 :(得分:0)
是的,但是我不推荐这种方法。您可以简单地创建一个ref
数组并在onSubmit
函数中循环遍历。
答案 1 :(得分:0)
forEach(组件中的TextInput){
在任何JavaScript环境中都是不可能的(不仅因为forEach和for..in的语法不同,而且您不能指望能够按类型(?)遍历组件元素,并且得到它们)
您要执行的操作不是JavaScript方式,而是旧式浏览器方式:
id
this.textInputRef._lastNativeText
在普通反应中所做的那样),但在React-native中不鼓励这样做,这很可能是因为非DOM react native必须将Native呈现为native视平台(iOS,Android,Windows等)而异的视图,但必须使用相同的视图因此,不仅在本机反应中是不可能的,在普通反应中也是如此。在我看来,您想要创建一个表单,迟早您会发现想要对输入进行验证或转换,然后无论如何都要切换回受控组件