みなさん、こんにちは。
状態オブジェクトの変更から画像ソースを変更しようとすると、変更されないという問題があります。
値を記録しましたが、変化していますが、画像は変化しません。
これが私が使用しているコードです:
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'
});
}
}
どんな助けでもありがたいです。
前もって感謝します
@ josev55
少し前に似たようなものを手に入れました。 <Image key={images[this.state.playImage].uri} ... />
のような画像タグにkeyプロパティを追加してみてください。 この場合、これは私のために働きましたhttps://github.com/facebook/react-native/issues/3471
@facebook-github-botスタック-オーバーフロー
ねえ@josev55そしてこれを投稿してくれてありがとう! @cosmithによると、この問題はStackOverflowで最もよく聞かれる質問のようです。 StackOverflowはQ&Aにとって素晴らしいものです。評判システム、投票、質問に回答済みのマークを付ける機能があります。 レピュテーションシステムのため、コミュニティはそこであなたの質問を見て答える可能性があります。 これは、バグのみにGitHubバグトラッカーを使用するのにも役立ちます。 これは本当にSOで尋ねられるべき質問なので、これを閉じます。
最も参考になるコメント
少し前に似たようなものを手に入れました。
<Image key={images[this.state.playImage].uri} ... />
のような画像タグにkeyプロパティを追加してみてください。 この場合、これは私のために働きましたhttps://github.com/facebook/react-native/issues/3471