Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

React Native TextInput always has black border

I am using a TextInput in React Native and if I try to add a border to the component there there is always a square black border on top of my colored border.

enter image description here

When I remove my colored border the component looks like this:

enter image description here

Here is my code:

<TextInput
      returnKeyType="search"
      style={searchStyle.searchInput}
      onChangeText={(text) => this.setState({text})}
      placeholder={this.state.searchText}
      onSubmitEditing={(event) => this.searchLocationSubmit(event)}
/>

const searchStyle = StyleSheet.create({
  searchInput : {
    height: 35,
    color: '#64AFCB',
    borderColor: '#64AFCB',
    borderWidth: 1,
    borderStyle: 'solid',
    borderRadius: 15,
    width: 200,
    marginLeft: 10,
    marginTop: 10,
    backgroundColor: 'white',
    position: 'absolute',
    zIndex: 2
  }
})
like image 598
Phil Mok Avatar asked Mar 09 '26 00:03

Phil Mok


2 Answers

Try removing borderStyle: 'solid'

like image 85
vinayr Avatar answered Mar 11 '26 12:03

vinayr


The accepted answer didn't really answer your issue.

If you want to set the border colour of a TextInput, there seems to be a bug in React Native where it will overwrite your borderColor style on a TextInput and set it to black.

To get around this, I wrap my TextInput tags in a View. I set the borderWidth of the TextInput to 0, then set the wrapping View to have the border styles I want to see on the input.

<View style={{borderStyle: 'solid', borderWidth: 1, borderColor: '#64AFCB'}}>
     <TextInput
         placeholder="MyInput"
         style={{borderWidth: 0}}
         value={this.state.myInputValue}
      />
</View>
like image 32
Matthew Corway Avatar answered Mar 11 '26 12:03

Matthew Corway



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!