أهلا بالجميع،
لدي مشكلة حيث أحاول تغيير مصدر الصورة من تغيير في كائن الحالة ولكنه لا يتغير.
لقد قمت بتسجيل القيمة وهي تتغير ولكن الصورة لا تتغير.
ها هو الكود الذي أستخدمه:
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} ... />
. لقد نجح هذا بالنسبة لي في هذه الحالة https://github.com/facebook/react-native/issues/3471
@ facebook-github-bot مكدس تجاوز
مرحبًا @ josev55 وشكرًا على نشر هذا! يخبرني cosmith أن هذه المشكلة تبدو وكأنها سؤال من الأفضل طرحه على StackOverflow . StackOverflow هو أمر مذهل بالنسبة للأسئلة والأجوبة: فهو يتمتع بنظام السمعة والتصويت والقدرة على تمييز السؤال على أنه تمت الإجابة عليه. بسبب نظام السمعة ، من المحتمل أن يرى المجتمع سؤالك هناك ويجيب عليه. يساعدنا هذا أيضًا في استخدام أداة تعقب الأخطاء GitHub للأخطاء فقط. سيتم إغلاق هذا لأن هذا حقًا سؤال يجب طرحه على SO.
التعليق الأكثر فائدة
حصلت على شيء مشابه منذ بعض الوقت. حاول إضافة خاصية المفتاح إلى علامة الصورة مثل
<Image key={images[this.state.playImage].uri} ... />
. لقد نجح هذا بالنسبة لي في هذه الحالة https://github.com/facebook/react-native/issues/3471