2017-04-05 46 views
0

我有一個警告說失敗道具類型:無效的道具價值「鍵盤類型」 - ReactNative

Warning: Failed prop type: Invalid prop 'keyboardType' of value "supplied to 'TextInput' expected one of ["default", "email-address", etc]

我所試圖做的是改變基礎上,選擇dropdownkeyboardType

工作正常,但我還是不斷有此錯誤。我不知道我做錯了什麼。我對React和ReactNative仍然很陌生,如果有人能夠幫助我解釋事情的工作方式,並給我舉例說明如何去做,那將會非常感激。

這裏是我的代碼

import ModalDropdown from 'react-native-modal-dropdown'; 

const types = ['Phone', 'Email Address', 'Name', 'Address']; 
export default class SampleComponent extends Component{ 
constructor(props) { 
super(props); 
this.state = { 
    dataInput: '', 
    typeOfKeyboard: '', 
}; 
} 

// this is how I set the state to be inputed in my `keyboardType` props 
typeSelectedOnSelect(id, value) { 

if(value== 'Phone'){ 
    this.setState({typeOfKeyboard: 'numeric'}); 
}else if(value== 'Email Address'){ 
    this.setState({typeOfKeyboard: 'email-address'}); 
}else{ 
    this.setState({typeOfKeyboard: 'default'}); 
} 
} 

render(){ 

<View style={{flexDirection: 'column', flex: 1, padding: 20}}> 
        <Text style={styles.contactTypeText}>Contact Type</Text> 
        <ModalDropdown 
           options={types} 
           onSelect={this.contactTypeOnSelect.bind(this)} 
           style={styles.dropdownContainer} 
           dropdownStyle={styles.dropdownStyle} 
           textStyle= {styles.dropdownText} 
        /> 

    <TextInput label="Type anything" keyboardType={this.state.typeOfKeyboard} onChangeText={(dataInput)=>this.setState({dataInput})} value={this.state.dataInput} /> 
       </View> 

感謝您的幫助!

回答

1

因爲你爲typeOfKeyboard初始狀態是空的。

它更改爲:「默認」或傳遞空。 從docs

鍵盤類型?:枚舉(「默認」,「電子郵件地址」,「數字」, 「手機墊」,「ASCII能力」,「數字和標點」, 'url', 'number-pad','name-phone-pad','decimal-pad','twitter', 'web-search')

確定打開哪個鍵盤,例如數字。

下面的值跨平臺工作:

默認數值電子郵件地址電話墊

的 '?'表示不需要

+1

謝謝你清除它向我走來。我不再收到警告。 – natsumiyu

+0

太棒了:)。很高興我能幫上忙! – WilomGfx

-1

我想你應該使用keyboardType=this.state.typeOfKeyboard而不是keyboardType={this.state.typeOfKeyboard},因爲{some expression}是一個對象,但this.state.typeOfKeyboard是字符串。 你可以試一試。

+0

與使用{}和僅僅this.state有什麼不同? – natsumiyu

+0

在回答問題之前,請您知道您在說什麼。它不是一個對象,它是JSX輸出數據的方式。就像在角度你做:{{}}。 – WilomGfx

+0

https://facebook.github.io/react/docs/jsx-in-depth.html#javascript-expressions – WilomGfx

相關問題