I'm menghadapi masalah aneh. Saya bereaksi aplikasi asli, jika saya set onPress
acara Melihat
hal ini tidak dipicu tapi jika saya set yang sama untuk Teks
dalam Melihat
, itu kebakaran. Apa yang saya hilang di sini?
<View style={{backgroundColor: "red", padding: 20}}>
<Text onPress={()=> {
console.log('works');
}
}>X</Text>
</View>
<View style={{backgroundColor: "red", padding: 20}} onPress={()=> {
console.log('does not work');
}
}>
<Text>X</Text>
</View>
Mengapa demikian? Apakah ini masalah dengan Bereaksi Asli? I'm menggunakan versi 0,43
Anda dapat menggunakan TouchableOpacity
untuk onPress
acara.
Melihat
doesn't memberikan onPress
prop.
<TouchableOpacity style={{backgroundColor: "red", padding: 20}} onPress={()=> {
console.log('does not work');
}
}>
<Text>X</Text>
</TouchableOpacity>
Anda dapat membungkus melihat dengan TouchableWithoutFeedback
dan kemudian menggunakan onPress
dan teman-teman seperti biasa. Anda juga masih bisa block pointerEvents
dengan menetapkan atribut pada anak-anak yang melihat, bahkan blok peristiwa pointer pada orangtua TouchableWithoutFeedback
, yang menarik, ini yang saya butuhkan di Android, saya didn't test pada iOS:
https://facebook.github.io/react-native/docs/touchablewithoutfeedback.html
<TouchableWithoutFeedback onPressIn={this.closeDrawer}>
<Animated.View style={[styles.drawerBackground, styleBackground]} pointerEvents={isOpen ? undefined : 'none'} />
</TouchableWithoutFeedback>
Anda dapat menggunakan TouchableOpacity, TouchableHighlight, TouchableNativeFeedback, untuk mencapai hal ini. Lihat komponen doesn't memberikan onPress sebagai alat peraga. Jadi anda menggunakan ini, bukan itu.
<TouchableNativeFeedback
onPress={this._onPressButton}
</TouchableNativeFeedback>
OR
<TouchableHighlight onPress={this._onPressButton}>
</TouchableHighlight>
OR
<TouchableOpacity onPress={this._onPressButton}>
</TouchableOpacity>