Подтвердить что ты не робот

ReactNative TextInput не отображается iOS

У меня есть следующий результат снятого рендеринга:

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

Сгенерированный TextInput не отображается в iOS, если я не укажу высоту и при использовании flexDirection: 'row' в своем контейнере, мне также нужно указать его ширину.

Это происходит только с iOS, Android, похоже, работает так, как ожидалось.

Есть ли способ отображения TextInput в iOS без фиксированного размера?

Текущие зависимости:

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

iOS:

введите описание изображения здесь

Android:

введите описание изображения здесь

Измените рендеринг следующим образом:

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

имеет следующий результат:

IOS:

введите описание изображения здесь

Android:

введите описание изображения здесь

4b9b3361

Ответ 1

Вам нужно определить высоту для textInput. Попробуйте:

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

Или, если вы не хотите определять высоту в TextInput, вы можете определить высоту на содержащем представлении и flex: 1 в TextInput:

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

Ответ 2

Столкнулась с той же проблемой, но была отображена, когда я удалил alignItems:'center' из верхнего родительского представления в функции render().