คุณจัดรูปแบบ TextInput อย่างไรในการตอบสนองดั้งเดิมสำหรับการป้อนรหัสผ่าน


105

ฉันมี TextInput แทนที่จะแสดงข้อความจริงที่ป้อนฉันต้องการให้แสดงเครื่องหมายดอกจัน (****) เมื่อผู้ใช้ป้อนข้อความ ฉันจะทำเช่นนี้ได้อย่างไร?

<TextInput
  style={{ height: 40, borderColor: 'gray', borderWidth: 1 }}
  onChangeText={(text) => this.setState({input: text})}
/>

คำตอบ:


332

เมื่อถูกถามว่ามีไม่ได้เป็นวิธีที่จะทำมันโดยกำเนิด แต่นี้จะมีการเพิ่มการซิงค์ถัดไปตามนี้คำขอดึง นี่คือความคิดเห็นสุดท้ายในคำขอดึง - "เชื่อมโยงไปถึงภายในจะออกในการซิงค์ครั้งถัดไป"

เมื่อเพิ่มแล้วคุณจะสามารถทำสิ่งนี้ได้

<TextInput secureTextEntry={true} style={styles.default} value="abc" />

อ้างอิง


ขอบคุณจนกว่าจะรวมเข้าด้วยกันมีตัวเลือกอะไรอีกบ้าง? ฉันเดาว่า Facebook ทำอะไรคล้าย ๆ กันสำหรับการเข้าสู่ระบบแอปของพวกเขาเอง
bwbrowning

1
วันนี้ฉันกำลังตรวจสอบนั่นคือวิธีที่ฉันพบคำขอดึงนั้น พวกเขากล่าวว่ามีเพียง 2 แอปที่เป็น React Native 100% แอป F8 จะเปิดหน้าต่างใหม่เพื่อขอการอนุญาต Facebook Ads มีฟังก์ชันที่เรากำลังมองหา แต่ฉันเกือบจะคิดว่าพวกเขารวม Objective-C ไว้แล้ว อีกวิธีหนึ่งคือการจัดเก็บสตริงและทุกครั้งที่การอัปเดตอินพุตจะแทนที่อักขระสุดท้ายด้วย ... stuff :)
Riley Bracken

@bwbrowning มันควรจะรวมเร็ว ๆ นี้; นานก่อนที่คุณจะปรับใช้ฉันจะเดิมพัน
Brigand

ฉันชอบสิ่งนี้เพราะมีข้อความดังนั้นฉันจึงสามารถคัดลอกวางจากมันได้ XD
Jovylle Bermudez




6

เพิ่ม

secureTextEntry={true}

หรือเพียงแค่

secureTextEntry 

คุณสมบัติใน TextInput ของคุณ

ตัวอย่างการทำงาน:

<TextInput style={styles.input}
           placeholder="Password"
           placeholderTextColor="#9a73ef"
           returnKeyType='go'
           secureTextEntry
           autoCorrect={false}
/>

4

TextInput ต้องมี secureTextEntry = {true} โปรดทราบว่าเอกสารของ React ระบุว่าคุณต้องไม่ใช้ multiline = {true} ในเวลาเดียวกันเนื่องจากไม่รองรับชุดค่าผสมนั้น

คุณยังสามารถตั้งค่า textContentType = {'password'} เพื่อให้ฟิลด์ดึงข้อมูลประจำตัวจากพวงกุญแจที่เก็บไว้ในมือถือของคุณซึ่งเป็นอีกทางเลือกหนึ่งในการป้อนข้อมูลรับรองหากคุณได้รับข้อมูลไบโอเมตริกซ์บนมือถือของคุณเพื่อใส่ข้อมูลรับรองอย่างรวดเร็ว เช่น FaceId บน iPhone X หรือการป้อนข้อมูลด้วยลายนิ้วมือบน iPhone รุ่นอื่น ๆ และ Android

 <TextInput value={this.state.password} textContentType={'password'} multiline={false} secureTextEntry={true} onChangeText={(text) => { this._savePassword(text); this.setState({ password: text }); }} style={styles.input} placeholder='Github password' />

3

บวกเล็กน้อย:

version = RN 0.57.7

secureTextEntry={true}

ไม่ทำงานเมื่อkeyboardTypeเป็น"phone-pad"หรือ"email-address"


2

คุณสามารถรับตัวอย่างและโค้ดตัวอย่างได้ที่เว็บไซต์ทางการดังต่อไปนี้:

<TextInput password={true} style={styles.default} value="abc" />

อ้างอิง: http://facebook.github.io/react-native/docs/textinput.html


2
ใช่ฉันเห็นสิ่งนี้เช่นกัน secureTextEntry={true} แต่สำหรับฉันมันเป็นเพียงการทำงานร่วมกับ
namxam

เพียงอัปเกรดเป็นเวอร์ชันเสถียรล่าสุด (0.8.0) และpassword={true}จะใช้งานได้
Daniel Pecher

0

ฉันใช้ 0.56RC secureTextEntry = {true} พร้อมกับรหัสผ่าน = {true} จากนั้นจะทำงานได้ตามที่ @NicholasByDesign กล่าวไว้เท่านั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.