Реагировать на исходный источник изображения chagne по нажатию кнопки

Привет, я пытаюсь изменить изображение одним нажатием кнопки, но не могу заставить изображение измениться. Вот мой код

constructor(){
   super()
   this.state = {
      autologin_active: true
   }
}

toggleAutoLogin(){
   this.state.autologin_active = this.state.autologin_active ? false : true;
}


<TouchableHighlight onPress={() => this.toggleAutoLogin()} style={styles.registerButton} underlayColor='#99d9f4'>
  <View style={styles.detailBoxTick}>
    <Image style={styles.imageTickStyle} source={this.state.autologin_active ? Images.rememberTickImg : Images.rememberUnTickImg} />
    <Text style={styles.tickBoxText}>
      Auto Login
    </Text>
  </View>          
</TouchableHighlight>

Может кто-нибудь, пожалуйста, помогите. Не уверен, что я делаю не так. С предупреждением проверили, что состояние меняется при нажатии. заранее спасибо

1 ответ

Решение

Если я вас правильно понял, в toggleAutoLogin(), вы обновляете свое состояние с this.state.autologin_active = ..... который обновляет состояние, но предотвращает повторную визуализацию, так что вы не можете видеть изменение изображения.

Вам необходимо обновить состояние с помощью setState({}) для повторного рендеринга компонента (Image).

Ваш код для toggleAutoLogin() было бы:

this.setState({ autologin_active: this.state.autologin_active ? false : true})

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