Стилизация нативных компонентов React

Когда я запускаю следующий код на своем телефоне

render() {
    return [
      <View style = {{ flex: 1, flexDirection: 'row' }}>
        <Search />
      </View>,
      <View style = {{ flex: 1, flexDirection: 'row' }}>
        <FlatList
          style = {styles.list}
          data = {this.state.products}
          renderItem = {({ item }) => <ProductCard product = {item} />}
          keyExtractor = {item => item.id}
        />
      </View>,
    ];
  }

Я получаю разделение экрана между компонентами Search и Productcard. Такое ощущение, что каждый из них по умолчанию занимает 50% экрана, но я хочу, чтобы они появлялись один за другим.

Компонент поиска - это просто фиктивный текст:

export default function Search() {
  return <Text>Hej</Text>;
} 

Но когда я снимаю их вокруг, это выглядит хорошо.

Можете ли вы удалить flex: 1 из обоих представлений в приведенном выше коде, а затем проверить.

Ayush Nawani 12.11.2018 07:01
Умерло ли Create-React-App?
Умерло ли Create-React-App?
В этом документальном фильме React.dev мы исследуем, мертв ли Create React App (CRA) и какое будущее ждет этот популярный фреймворк React.
Освоение React Native: Пошаговое руководство для начинающих
Освоение React Native: Пошаговое руководство для начинающих
React Native - это популярный фреймворк с открытым исходным кодом, используемый для разработки мобильных приложений. Он был разработан компанией...
В чем разница между react native и react ?
В чем разница между react native и react ?
React и React Native - два популярных фреймворка для создания пользовательских интерфейсов, но они предназначены для разных платформ. React - это...
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
Хуки React: что это такое и как их использовать
Хуки React: что это такое и как их использовать
Хуки React - это мощная функция библиотеки React, которая позволяет разработчикам использовать состояние и другие возможности React без написания...
0
1
46
3

Ответы 3

вы ищете что-то подобное?

render() {
    return(
        <View style = {{flex: 1, flexDirection: 'column'}}>
          <View style = {{flexDirection: 'row' }}>
            <Search />
          </View>,
          <View style = {{ flex: 1, flexDirection: 'row' }}>
            <FlatList
              style = {styles.list}
              data = {this.state.products}
              renderItem = {({ item }) => <ProductCard product = {item} />}
              keyExtractor = {item => item.id}
            />
          </View>
        </View>
    );
 }

Я полагаю, вы хотите, чтобы они прокручивались, в таком случае вам нужно обернуть их вокруг <ScrollView>.

вот так,

render() {
    return (
    <ScrollView>
      <View style = {{ flex: 1, flexDirection: 'row' }}>
        <Search />
      </View>,
      <View style = {{ flex: 1, flexDirection: 'row' }}>
        <FlatList
          style = {styles.list}
          data = {this.state.products}
          renderItem = {({ item }) => <ProductCard product = {item} />}
          keyExtractor = {item => item.id}
        />
      </View>
    </ScrollView>
    );
  }

А во втором случае, если вы хотите, чтобы прокручивалась только вторая половина, просто оберните это представление в тег <ScrollView>.

Спасибо за помощь, это привело меня в правильном направлении, но я заставил его работать с помощью кода ниже:

     <View>
        <Search />,
        <FlatList
          style = {styles.list}
          data = {this.state.products}
          renderItem = {({ item }) => <ProductCard product = {item} />}
          keyExtractor = {item => item.id}
        />
        ,
      </View>

Другие вопросы по теме