Oi pessoal,
Eu tenho um problema em que tento alterar a fonte da imagem de uma alteração no objeto de estado, mas não está mudando.
Eu registrei o valor e está mudando, mas a imagem não.
Aqui está o código que estou 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'
});
}
}
Qualquer ajuda será apreciada.
desde já, obrigado
@josev55
Eu tenho algo parecido algum tempo atrás. Tente adicionar a propriedade key à tag de imagem como <Image key={images[this.state.playImage].uri} ... />
. Isso funcionou para mim neste caso https://github.com/facebook/react-native/issues/3471
@facebook-github-bot estouro de pilha
Ei @josev55 e obrigado por postar isso! @cosmith me diz que esse problema parece uma pergunta que seria melhor feita no StackOverflow . O StackOverflow é incrível para perguntas e respostas: possui um sistema de reputação, votação, a capacidade de marcar uma pergunta como respondida. Por causa do sistema de reputação, é provável que a comunidade veja e responda sua pergunta lá. Isso também nos ajuda a usar o rastreador de bugs do GitHub apenas para bugs. Vai fechar isso, pois esta é realmente uma pergunta que deve ser feita no SO.
Comentários muito úteis
Eu tenho algo parecido algum tempo atrás. Tente adicionar a propriedade key à tag de imagem como
<Image key={images[this.state.playImage].uri} ... />
. Isso funcionou para mim neste caso https://github.com/facebook/react-native/issues/3471