Saltar al contenido

¿Cómo cambiar el estilo del marcador de posición TextInput en React Native?

Solución:

Puede establecer el color de su marcador de posición utilizando el placeholderTextColor apuntalar.

<TextInput placeholderTextColor={'red'} />

Mejorando la respuesta de Daniel para una solución más genérica

class TextInput2 extends Component {
  constructor(props) {
    super(props);
    this.state = { placeholder: props.value.length == 0 }
    this.handleChange = this.handleChange.bind(this);
  }
  handleChange(ev) {
    this.setState({ placeholder: ev.nativeEvent.text.length == 0 }); 
    this.props.onChange && this.props.onChange(ev); 
  }
  render() {
    const { placeholderStyle, style, onChange, ...rest } = this.props;

    return <TextInput 
      {...rest} 
      onChange={this.handleChange}
      style={this.state.placeholder ? [style, placeholderStyle] : style}
      />
  }
}

Uso:

<TextInput2 
  text={this.state.myText}
  style={{ fontFamily: "MyFont" }}
  placeholderStyle={{ fontFamily: "AnotherFont", borderColor: 'red' }}
/>

Puede crear esta funcionalidad usted mismo. El marcador de posición se muestra cuando la entrada está vacía, por lo que puede verificar su estado y cambiar el estilo de fuente en consecuencia:

<TextInput
  onChangeText={txt => this.setState({enteredText: txt})}
  fontStyle={this.state.enteredText.length == 0 ? 'italic' : 'normal'}
  style={style.input} />

Por alguna razón, esto no parece funcionar con fontFamily = System. Por lo tanto, debe especificar explícitamente fontFamily.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *