Как изменить стили TextInput, не затрагивая предыдущий набранный текст. - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь создать редактор форматированного текста, который будет иметь такие параметры, как выделение жирным шрифтом, как я могу добиться этого, не затрагивая предыдущий контент, когда я пытаюсь изменить их из состояния, в котором он влияет на предыдущий вставленный текст`

export default class App extends React.Component {
          constructor(props){
               super(props)
               this.state={
                      text:'',
                      inputStyles:{
                            fontWeight:'light'
                      }
               }
          }
        _Bold =()=>{
            this.setState({inputStyles:{
                  fontWeight:'bold'
            }})

        }

      render() {
        return(


               <View style={styles.container}>
                       <StatusBar backgroundColor="#24292e" barStyle="light-content" />

                       <TextInput  placeholder="Star to write"
                        style={this.state.inputStyles}
                      />

              <TouchableOpacity onPress={()=>this._Bold()}>
                    <Text>BOLD</Text>
              </TouchableOpacity>
               </View>



               ) 
          }
      }
    `

1 Ответ

1 голос
/ 08 мая 2020

Если я правильно понял, я думаю, вам нужно изменить TextInput следующим образом:

  <TextInput 
    placeholder="Star to write"
    value={this.state.text}
    onChangeText={(text) => this.setState({text)}
    style={this.state.inputStyles}
  />

Проблема в том, что вы не сохраняете текст в состоянии, после его рендеринга он получает потеряно

...