2016-02-29 9 views
8

मैं textInput के प्लेसहोल्डर पाठ के लिए फ़ॉन्ट परिवार बदलना होगा। अगर हम यह secureTextEntry={true} जोड़ते हैं, तो निर्दिष्ट फ़ॉन्ट परिवार प्लेसहोल्डर टेक्स्ट के लिए सेट है।कैसे TextInput प्लेसहोल्डर के लिए फ़ॉन्ट परिवार को बदलें में प्रतिक्रिया मूल निवासी

<TextInput style={styles.textboxfield} secureTextEntry={true} placeholder="Password" /> 

लेकिन अगर हम इस secureTextEntry={true} निकालने के लिए, हम प्लेसहोल्डर

<TextInput style={styles.textboxfield} placeholder="Password" /> 

के लिए font-family निर्धारित नहीं कर सकते शैली है: textboxfieldd: { ऊंचाई: 39, पृष्ठभूमि रंग: '#ffffff', marginBottom: 0, FontFamily: 'Inconsolata-नियमित', },

मैं प्लेसहोल्डर पाठ के लिए फ़ॉन्ट परिवार को कैसे बदल सकते हैं?

+1

यह एक मूल निवासी मुद्दा प्रतिक्रिया है उल्लेख करने के लिए प्लेसहोल्डर पाठ निर्धारित है। आरएन 0.42 बाहर आने पर एक फिक्स जारी किया जाना निर्धारित है। देखें [यहां] चर्चा (https://github.com/facebook/react-native/issues/4600) और ठीक [यहां] (https://github.com/facebook/react-native/pull/12000) । – x0z

उत्तर

6

इस प्रयास करें:?

<TextInput 
    secureTextEntry={(this.state.email.length <= 0 && this.state.emailStatus != 'onFocus') ? true : false} 
    style={styles.textboxfieldd} 
    placeholderStyle={styles.textboxfieldd} 
    onFocus={this.changeStatus.bind(this, 'emailStatus', 'onFocus', '')} 
    onChangeText={(email) => this.setState({ email })} 
    value={this.state.email} 
    placeholder={this.state.emailStatusPH} 
    placeholderTextColor="#D8D8D8" /> 

वास्तव में इस लाइन => secureTextEntry = {(! This.state.email.length < = 0 & & this.state.emailStatus = 'onFocus') सच : झूठी} समस्या हल करती है।

क्योंकि अगर हम दे secureTextEntry = {सच} का आशय FontFamily पाठ प्लेसहोल्डर के लिए निर्धारित है, लेकिन क्षेत्र, पासवर्ड के रूप में बदल दिया है तो के लिए है कि केवल हम इस तरह लिखा था। secureTextEntry = {(this.state.email.length < = 0 & & this.state.emailStatus = 'onFocus'!) सच: झूठी}

हैं कि क्षेत्र लंबाई 0 और नहीं ध्यान केंद्रित यह सच सेट हो जाएगा मतलब है secureTextEntry = {सच} तो FontFamily

+0

के बारे में वास्तविक समस्या को संबोधित नहीं कर रहा है सुपर nitpicky नहीं हो सकता है, लेकिन आप एक झलाईगर में एक बूलियन वापस जाने के लिए आवश्यकता नहीं है। यह 'के रूप में secureTextEntry = {! this.state.email.length && this.state.emailStatus! == 'onFocus'}' लिखा जा सकता है – mg87

-1

आप एक बार फॉन्ट बदलना चाहते हैं, तो आप सिर्फ fontFamily: yourFontFamilyName

आप कई जगह में अपने फ़ॉन्ट के प्रयोग पर योजना बना रहे हैं निर्धारित कर सकते हैं मैं तुम्हें एक वर्ग है कि एक ही FontFamily हर का उपयोग करेगा बनाने की सलाह:

आप इसे इस तरह से कर सकते हैं: (font-family के रूप में Quicksand साथ उदाहरण)

import React, {TextInput} from 'react-native'; 

import _ from 'lodash'; 

var OldTextInput = TextInput; 

class NewTextInput extends OldTextInput { 
    defaultProps = {}; 
    render() { 
    var props = _.clone(this.props); 

    if (_.isArray(this.props.style)){ 
     props.style.push({fontFamily: 'Quicksand-Regular'}); 
    } else if (props.style) { 
     props.style = [props.style, {fontFamily: 'Quicksand-Regular'}]; 
    } else { 
     props.style = {fontFamily: 'Quicksand-Regular'}; 
    } 

    this.props = props; 

    return super.render(); 
    }; 
} 

export default NewTextInput; 

और उसके बाद हर फाइल में यह आवश्यक बनाकर TextInput का उपयोग करें (import TextInput from './TextInput')

+1

मैं के साथ की कोशिश की है "FontFamily: Inconsolata-नियमित" लेकिन प्लेसहोल्डर के लिए फ़ॉन्ट परिवार को बदलने में असमर्थ। और मैंने ऊपर शैली जोड़ा है। – Thivya

+0

लेकिन पाठ पाठ इनपुट में पाठ के लिए काम करता है? –

+0

हाँ, यही कारण है कि (TextInput में पाठ के लिए) काम कर रहा है – Thivya

संबंधित मुद्दे