Реагировать на исходный источник изображения 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})