Beri tahu kami versi mana yang Anda gunakan:
Menavigasi dari satu adegan ke adegan lain menggunakan contoh redux akan bekerja tanpa peringatan kinerja Bereaksi
Menerima peringatan berikut saat menavigasi antar adegan menggunakan kode contoh yang disediakan: "Peringatan: Peristiwa sintetis ini digunakan kembali untuk alasan kinerja. Jika Anda melihat ini, Anda mengakses properti "ketik" pada peristiwa sintetis yang dirilis/dibatalkan. Ini disetel ke null. Jika Anda harus menyimpan event sintetis asli, gunakan event.persist()."
<Text onPress={Actions.home}>Go home</Text>
Go home
home
, tetapi beberapa peringatan muncul dengan teks di atas@joeferraro Saya juga melihat ini - apakah Anda beruntung mengetahui apa yang sedang terjadi?
Saya melihat hal yang sama :\
@joeferraro @Almouro - Saya telah menemukan bahwa berubah dari
onPress={Actions.otherScene}
ke
onPress={() => Actions.otherScene()}
telah dihapus dengan kesalahan ini.
Terima kasih @jamielob , ini juga masalah bagi saya. :)
Terima kasih @jamielob.
Saya bertanya-tanya mengapa tutorial mini menggunakan onPress={Actions.Foo}
sebagai gantinya. Mungkinkah ada alasan untuk itu?
saran jamielob memperbaiki kesalahan untuk saya.
Noob di sini, apa yang terjadi secara berbeda di bawah tenda ketika Anda memberikannya fungsi anonim vs referensi aktual.
Jika ada orang lain yang menemukan kesalahan ini dan yang di atas tidak berfungsi, saya menemukannya karena saya meneruskan argumen pertama dari onSubmitEditing
pada <TextInput>
ke fungsi seperti:
<TextInput
onSubmitEditing={(text) => this.performSearch(text)} // Should be event, not text
/>
Variabel teks itu sebenarnya adalah acara kirim yang akhirnya memberi saya pesan di atas dan sakit kepala debugging untuk sementara waktu.
event.preventDefault();
event.stopPropagation();
Saya pikir masalahnya adalah, Anda mencoba mengakses objek acara setelah dirilis dan didefinisikan ulang.
React Docs => SyntheticEvent dikumpulkan. Ini berarti bahwa objek SyntheticEvent akan digunakan kembali dan semua properti akan dibatalkan setelah panggilan balik peristiwa dipanggil. Ini untuk alasan kinerja. Dengan demikian, Anda tidak dapat mengakses acara dengan cara yang tidak sinkron.
jika Anda perlu menggunakan atribut dari acara obj maka Anda harus mengaksesnya seperti ini
function displayForm(event){
console.log(event) // will error
console.log(event.type) will work
const eventType = evnet.type;
// or call event.persist();
Jika Anda ingin mengakses properti peristiwa secara asinkron, Anda harus memanggil event.persist() pada peristiwa tersebut, yang akan menghapus peristiwa sintetis dari kumpulan dan memungkinkan referensi ke peristiwa tersebut disimpan oleh kode pengguna.
Saya tidak yakin apakah penyebab masalah ini telah dijelaskan dengan jelas, jadi izinkan saya untuk membagikan pemahaman saya dan bagaimana saya memperbaikinya.
TouchableWithoutFeedback
mendefinisikan onPress?: (event: GestureResponderEvent) => void;
.
Jadi, ketika hanya memberikan nama fungsi, parameter yang diteruskan adalah GestureResponderEvent
- dan ada kemungkinan itu bukan yang Anda harapkan.
Dengan mengubah dari nama fungsi menjadi fungsi anonim yang memanggil fungsi Anda (misalnya () => yourFunction()
), GestureResponderEvent
tidak diteruskan ke fungsi Anda.
Teman-teman saya punya masalah ini pada navigator.
Screen.navigationOptions=({navigation})=>{
const handleEditButton=navigation.navigate.bind(this,"EditProduct")
return {
headerTitle:"My Products",
headerRight:<CustomHeaderButton
iconName="ios-add"
title="Add"
iconSize={26}
color={colors.bright}
onPress={handleEditButton}
/>
}
}
perhatikan metode yang saya gunakan. Saya mencoba untuk mengikat metode navigasi. (Ya aku tahu)
const handleAddButton=()=>navigation.navigate("EditProduct")
Komentar yang paling membantu
@joeferraro @Almouro - Saya telah menemukan bahwa berubah dari
ke
telah dihapus dengan kesalahan ini.