Saya membuat aplikasi android menggunakan reaksi asli dan saya telah menggunakan komponen TouchableOpacity untuk membuat tombol.
Saya menggunakan komponen input teks untuk menerima teks dari pengguna dan tombol hanya boleh diaktifkan setelah input teks cocok dengan string tertentu.
Saya bisa memikirkan cara untuk melakukan ini dengan awalnya rendering tombol tanpa pembungkus TouchableOpactiy dan rendering ulang dengan pembungkus setelah string input cocok.
Tapi saya kira ada cara yang lebih baik untuk melakukan ini. Adakah yang bisa membantu?
react-native
Jeff P Chacko
sumber
sumber
disabled
negara tidak mengubah gaya render anak sehingga untuk membuat negara yang dinonaktifkan terlihat oleh pengguna, Anda perlu menerapkan gaya keText
elemen seperti<Text style={{ opacity: 0.5 }}>I'm disabled</Text>
- hanya FYILakukan saja ini
sumber
<Text>{text}</FontText>
? FontText?Ini sepertinya jenis hal yang dapat dipecahkan menggunakan Komponen Orde Tinggi. Saya bisa saja salah karena saya berjuang untuk memahaminya 100% sendiri, tapi mungkin itu akan membantu Anda (berikut beberapa tautan) ...
sumber
TouchableOpacity menerima
activeOpacity
. Anda dapat melakukan sesuatu seperti iniJadi jika diaktifkan, itu akan terlihat normal, jika tidak, itu akan terlihat seperti disentuh tanpa umpan balik.
sumber
pangkalan asli ini ada solusinya:
sumber
Untuk menonaktifkan Teks, Anda harus mengatur opacity: 0 dalam gaya Teks seperti ini:
sumber
Anda dapat membangun CustButton dengan
TouchableWithoutFeedback
, dan mengatur efek dan logika yang Anda inginkanonPressIn
,onPressout
atau alat peraga lainnya.sumber
Saya dapat memperbaikinya dengan meletakkan kondisional pada properti style.
sumber
Inilah pekerjaan saya untuk ini, saya harap ini membantu:
di
SignUpStyleSheet.inputStyle
tahan gaya untuk tombol ketika dinonaktifkan atau tidak, maka distyle={this.state.validity ? SignUpStyleSheet.inputStyle : [SignUpStyleSheet.inputAndButton, {opacity: 0.5}]}
saya menambahkan properti opacity jika tombol dinonaktifkan.sumber
Anda dapat mengaktifkan dan menonaktifkan tombol atau dengan menggunakan kondisi atau secara langsung secara default itu akan menonaktifkan: true
sumber
Saya pikir cara yang paling efisien adalah dengan membungkus touchableOpacity dengan tampilan dan menambahkan prop pointerEvents dengan kondisi gaya.
CSS:
sumber