Переопределить действие набора стилей в TextInput

Я обнаружил, что response native может расширять родительский класс и переопределять некоторые функции. Я хочу знать, возможно ли это или есть другой способ сделать это.

export default class AppTextInput extends TextInput {

    constructor(props){
       super(props);
    }

    //here is some code I want to do
    style(value){

        var fontSize = value.fontSize;

        //change fontSize
        fontSize = fontSize*2;

        value.fontSize = fontSize;

       //call parent set style function

    }


}

В ActionScript 3 я мог бы сделать вот так

//do something when visible was set
override public function set visible(value:Boolean):void
{
}

РЕДАКТИРОВАТЬ

    hasTriggleFontSizeChange = false;

    realFontSize = 12;

    componentWillMount() {
        var tempStyle = this.props.style;

        if (!this.hasTriggleFontSizeChange) {
            this.hasTriggleFontSizeChange = true;

            var tempFontSize = 6;

            if (tempStyle.hasOwnProperty('fontSize')) {
                tempFontSize = tempStyle['fontSize'];
            }

            tempFontSize = 12;

            var style = {fontSize: tempFontSize};

            let styles = this.props.style;

            //this line can change styles fontSize Value
            styles = {...styles, fontSize: tempFontSize};

            //but this line can't change styles fontSize Value
             this.props.style = styles//{...this.props.style, fontSize: tempFontSize};
        }

    }
Умерло ли Create-React-App?
Умерло ли Create-React-App?
В этом документальном фильме React.dev мы исследуем, мертв ли Create React App (CRA) и какое будущее ждет этот популярный фреймворк React.
Освоение React Native: Пошаговое руководство для начинающих
Освоение React Native: Пошаговое руководство для начинающих
React Native - это популярный фреймворк с открытым исходным кодом, используемый для разработки мобильных приложений. Он был разработан компанией...
В чем разница между react native и react ?
В чем разница между react native и react ?
React и React Native - два популярных фреймворка для создания пользовательских интерфейсов, но они предназначены для разных платформ. React - это...
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
Хуки React: что это такое и как их использовать
Хуки React: что это такое и как их использовать
Хуки React - это мощная функция библиотеки React, которая позволяет разработчикам использовать состояние и другие возможности React без написания...
0
0
277
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны использовать не наследование, а композицию. Если вы хотите иметь собственный TextInput, вот пример того, как вы могли бы этого добиться:

import React, { Component } from 'react';
import { TextInput } from 'react-native';

export default class CustomTextInput extends Component {
  state = {}

  render() {
    const { props } = this;
    const style = { fontSize: props.fontSize || 14 }
    return (
      <View style = {myStyle}>
        <TextInput
          style = {style}
          placeholder = {props.placeholder}
          underlineColorAndroid = "transparent"
          value = {props.value}
          placeholderTextColor = {props.placeholderTextColor ? props.placeholderTextColor : colors.lightGray}
        />
      </View >
    );
  }

}

Но где я могу изменить размер шрифта, когда стиль был установлен? Я отредактировал вопрос.

Pan 17.12.2018 12:24

Я следил за вашим кодом и не могу изменить стиль в моем заданном коде стиля. Не могли бы вы увидеть часть редактирования? Я думаю, что, может быть, я не могу установить такой стиль напрямую.

Pan 18.12.2018 07:00

Другие вопросы по теме