Hola a todos,
Tengo un problema en el que trato de cambiar la fuente de la imagen a partir de un cambio en el objeto de estado, pero no cambia.
He registrado el valor y está cambiando, pero la imagen no.
Aquí está el código que estoy usando:
render() {
var images = {
playcircle: require('image!playcircle'),
pausecircle: require('image!pausecircle')
}
return (
<View style={[styles.container, {width: this.props.width - 10}]}>
<TouchableOpacity onPress={this._playAudio.bind(this)}>
<Image source={images[this.state.playImage]} style={styles.img} />
</TouchableOpacity>
<View style={styles.textWrapper}>
<Text style={styles.txt}>{this.props.podTitle}</Text>
</View>
</View>
);
}
_playAudio() {
var blockThis = this;
debugger;
if (!this.state.isPlaying) {
JSAudioPlayer.play(this.props.url, true, function(error){
if (error) {
alert(error);
} else {
blockThis.setState({
isPlaying: true,
playImage: 'pausecircle'
})
}
});
} else {
JSAudioPlayer.pauseCurrent();
blockThis.setState({
isPlaying: false,
playImage: 'playcircle'
});
}
}
Cualquier ayuda será apreciada.
Gracias por adelantado
@josev55
A mi me llego algo parecido hace un tiempo. Intente agregar la propiedad clave a la etiqueta de imagen como <Image key={images[this.state.playImage].uri} ... />
. Esto funcionó para mí en este caso https://github.com/facebook/react-native/issues/3471
@facebook-github-bot-desbordamiento de pila
¡Hola @josev55 y gracias por publicar esto! @cosmith me dice que este problema parece una pregunta que se haría mejor en StackOverflow . StackOverflow es increíble para preguntas y respuestas: tiene un sistema de reputación, votación, la capacidad de marcar una pregunta como respondida. Debido al sistema de reputación, es probable que la comunidad vea y responda su pregunta allí. Esto también nos ayuda a usar el rastreador de errores de GitHub solo para errores. Cerraré esto ya que esta es realmente una pregunta que debe hacerse en SO.
Comentario más útil
A mi me llego algo parecido hace un tiempo. Intente agregar la propiedad clave a la etiqueta de imagen como
<Image key={images[this.state.playImage].uri} ... />
. Esto funcionó para mí en este caso https://github.com/facebook/react-native/issues/3471