我的表单中有一个View
,其中包含多个<TextInput>
元素。当用户点击提交按钮时,所有字段都应变为non-editable
,这可能是
<View pointerEvents='none'>
</View>
但它只能阻止用户不要编辑字段,但不会显示字段的外观,因为它是disabled
。
因此,有没有办法让所有disable
元素同时显示<TextInput>
?
答案 0 :(得分:1)
我无法想到View上的任何道具,这将有助于你给一个&#34;残疾人&#34; UI。 pointerEvents允许您阻止编辑每个组件。事实上,TextInput有一个可编辑的道具但没有禁用道具。这表明没有内置的视觉提示来指示无法编辑组件。默认情况下,唯一的线索就是当您专注于项目时没有键盘出现。简而言之,没有什么可以立即为您的每个组件提供禁用的视觉提示。
答案 1 :(得分:0)
如果<TextInput>
已禁用,则需要根据<TextInput>
不可编辑的条件指定<TextInput>
的backgroundColor。
state = {
text:"",
isEditable:true
}
<TextInput
editable={this.state.isEditable}
style={{height: 40, backgroundColor:(this.state.isEditable)?'white':'#EDEEEF'}}
onChangeText={(text) => this.setState({text})}
value={this.state.text}
/>
按下提交按钮,您可以在验证成功后将isEditable
设置为false:
onSubmit(){
//Your logic goes here after successful validation set isEditable to false
this.setState({isEditable:false});
}