Я изучаю React Native и стилизованные компоненты. Я работаю над простым приложением для iOS и сталкиваюсь с некоторыми проблемами с styled-components
.
Что я пытаюсь сделать
Я пытаюсь показать modal
при клике, который выглядит следующим образом
<Modal visible={this.state.isModalVisible} animationType={'fade'}>
<StyledView flex={1} padding={10} backgroundColor={'orange'}>
<View>
...more Views and Texts
</View>
</StyledView>
</Modal>
StyledView
- это пользовательское представление, созданное мной с использованием styled-components
, которое выглядит следующим образом
const ViewWrapper = styled.View`
flex: ${props => props.flex};
padding: ${props => props.padding};
backgroundColor: ${props => props.backgroundColor};
`;
const StyledView = ({ flex, padding, backgroundColor }) => (
<ViewWrapper
flex={flex}
padding={padding}
backgroundColor={backgroundColor}
/>
);
export default StyledView;
У меня проблемы
1) Когда я устанавливаю padding={10}
, я получаю ошибку Failed to parse declaration "padding: 10"
.
2) После небольшого поиска в Google я обнаружил, что должен использовать padding={'10px'}
, который выдает эту ошибку, 10px is of type NSString cannot be converted to YGValue. Did you forget the % or pt suffix?
.
(padding={'10%'}
отлично работает)
Тогда я просто попытался установить значения flex и padding в ViewWrapper
и отправить только цвет фона как prop
.
3) Но по какой-то причине View
s и Text
s, вложенные в StyledView
, не отображаются.
Пожалуйста, скажите мне, почему это не работает, и помогите мне понять, что мне здесь не хватает. Спасибо.