2016-01-29 18 views
10

I mają następujące demontowany uczynić wyniki:ReactNative TextInput niewidoczne iOS

return (
    <View style={{backgroundColor:'red'}}> 
    <TextInput value={'Hello'}/> 
    </View> 
); 

Wytworzona TextInput nie jest widoczny w iOS chyba określić wysokość, oraz przy wykorzystaniu flexDirection: „wiersz”, w pojemniku , Muszę również określić jego szerokość.

Dzieje się tak tylko w systemie iOS, Android działa zgodnie z oczekiwaniami.

Czy istnieje sposób wyświetlania wpisu TextInput w systemie iOS bez ustalonego rozmiaru?

Aktualne zależności:

"dependencies": { 
    "react-native": "=0.18.1", 
    "react-native-orientation": "=1.12.2", 
    "react-native-vector-icons": "=1.1.0" 
    }, 

iOS:

enter image description here

Android:

enter image description here

Zmiana czynią tak:

return (
    <View style={{backgroundColor:'red'}}> 
    <Text>text</Text> 
    <TextInput value={'Hello'}/> 
    </View> 
); 

ma następujący wynik:

iOS:

enter image description here

Androidem:

enter image description here

Odpowiedz

26

trzeba zdefiniować wysokość dla textInput. Spróbuj:

return (
    <View style={{backgroundColor:'red'}}> 
    <Text>text</Text> 
    <TextInput style={{ backgroundColor: '#ededed', height: 60 }} value={'Hello'}/> 
    </View> 
); 

Lub, jeśli nie chcesz, aby określić wysokość na TextInput można określić wysokość w widoku zawierającym oraz Flex 1 na TextInput:

<View style={{ height:60 }}> 
    <TextInput style={{ flex:1, backgroundColor: '#ededed' }} /> 
</View> 
+0

Tak wiem, że działa, jeśli to zrobię. Więc nie jest możliwe, aby zajęło to miejsce tak jak w przypadku innych elementów? – Giannis

+0

Nie w systemie iOS. Jedynym innym sposobem jest dodanie wysokości do kontenera i "flex: 1" do TextInput. Zaktualizowałem swój kod, aby to pokazać. –

+1

Może wymagać "#ededed" zamiast "ededed" dla backgroundColor. – bitsand

0

Faced ten sam problem, ale wyrenderowany po usunięciu alignItems:'center' z najwyższego widoku nadrzędnego w funkcji render().

Powiązane problemy