如何一次更改<view>中多个<textinput>元素的颜色?

时间:2018-02-09 06:19:53

标签: react-native

我的表单中有一个View,其中包含多个<TextInput>元素。当用户点击提交按钮时,所有字段都应变为non-editable,这可能是

<View pointerEvents='none'>
</View>

但它只能阻止用户不要编辑字段,但不会显示字段的外观,因为它是disabled

因此,有没有办法让所有disable元素同时显示<TextInput>

2 个答案:

答案 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});
}