#javascript #reactjs #styles #native
#javascript #reactjs #стили #собственный
Вопрос:
можно ли установить некоторые свойства стиля из родительского элемента в качестве реквизита и некоторые свойства стиля из самого компонента?
Вот мой компонент:
import React,{ Component } from 'react';
import { View, Text } from 'react-native';
class BackgroundMar extends Component {
render(){
return (
<View style={[styles.viewStyle]}>
<Text>{this.props.test}</Text>
</View>
)
}
};
var styles = {
viewStyle: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
backgroundColor: props.color
}
};
export default BackgroundMar;
И вот мой родитель:
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import BackgroundMar from "./components/BackgroundMar";
export default class App extends React.Component {
render() {
return (
<BackgroundMar
test={'aaa'}
color={'#ff2044'}
/>
);
}
};
});
Я хотел бы установить только backgroundColor из родительского.
Ответ №1:
Хорошо, я нашел решение. На родительском:
export default class App extends React.Component {
render() {
return (
<BackgroundMar
test={'#52a03f'}
/>
);
}
};
На самом компоненте:
class BackgroundMar extends Component {
render(){
return (
<View style={[styles.viewStyle, { backgroundColor: this.props.test}]}>
<Text>{this.props.test}</Text>
</View>
)
}
};
var styles = {
viewStyle: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
}
};
Комментарии:
1. вы сделали то же самое, что я хотел объяснить, хорошо, например, как добавлять стили динамически, варианты использования отличаются от проекта к проекту 🙂
2. о, хорошо, извините, я вас неправильно понял. Спасибо за помощь. 🙂
Ответ №2:
Попробуйте что-то вроде
Сначала отправьте стили из родительского компонента как объект … например..
style={{color:"#abcd"}}
затем внутри дочернего компонента. добавьте это в массив стилей
<View style={this.props.style ? [styles.viewStyle, this.props.style] :
[styles.viewStyle]}>
Комментарии:
1. Это не работает. Я не могу передать такой объект. экспорт приложения класса по умолчанию расширяет React. Компонент { render() { return ( <BackgroundMar test={‘aaa’} style={color:’#ff2044′} /> ); } }; У меня «Ошибка при чтении составного ответа»