React Native: стили не применяются

Я не могу понять, почему стиль не применяется к внутреннему виду {props.children} в следующем коде. Он не выдает никаких ошибок, а только отображает {props.children} как простой текст.

import React from 'react';
import { View } from 'react-native';

const Card = (props) => {
  return (
    <View style = {styles.containerStyle}>
      {props.children}
    </View>
  );
};

const styles = {
  containerStyle: {

    borderWidth: 8,
    borderRadius: 2,
    borderColor: 'black',
    borderBottomWidth: 0,
    shadowColor: 'black',
    shadowOffset: { width: 0, height: 2 },
    shadowOpacity: 0.1,
    shadowRadius: 2,
    elevation: 1,
    marginLeft: 5,
    marginRight: 5,
    marginTop: 60
  }
};

export default Card;

рендеринг {props.children} здесь:

import React from 'react';
import { Text } from 'react-native';
import Card from './Card';

const AlbumDetail = (props) => (
    <Card>
      <Text>{props.album.title}</Text>
    </Card>
  );

export default AlbumDetail;

Вы не применяете стили к его дочерним элементам. Просто самому родителю. Вы должны предоставить стили для элемента Text, если хотите, чтобы дочерние элементы (в данном случае Text) имели эти стили.

Samitha Nanayakkara 03.11.2018 14:27

Решенная проблема: возникла ошибка с metro Bundler, о которой я не знал, из-за которой мой проект не обновлялся. Моя проблема была решена перезапуском сборщика метро.

James Mulcahy 03.11.2018 15:43
Умерло ли 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 без написания...
2
2
3 738
2

Ответы 2

Вы просто передаете свои вложенные компоненты в AlbumDetail, но не применяете какой-либо стиль к text внутри вашего Card-компонента. Вы должны установить их так:

import React from 'react';
import { Text } from 'react-native';
import Card from './Card';

const AlbumDetail = (props) => (
    <Card>
      <Text styles = {props.album.title}></Text>
    </Card>
);

export default AlbumDetail;

@ Ответ Мурмельтье содержит крошечную ошибку.

Текстовый компонент имеет название свойства «стиль», а не «стили».

<Text style = {props.album.title}></Text>

Я думал, что схожу с ума. Я очень рад, что нашел твой ответ. Крошечная опечатка действительно может вас испортить.

Ray 08.05.2020 04:38

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