Hãy xem Chủ đề Shoutem cho React Native.
Đây là những gì bạn nhận được với Chủ đề Shoutem:
Kiểu toàn cục trong đó kiểu nhất định được tự động áp dụng cho thành phần theo tên kiểu của nó:
const theme = {
'my.app.ComponentStyleName': {
backgroundColor: 'navy',
},
};
Kích hoạt kiểu cụ thể của thành phần nhất định với styleName
(như lớp CSS):
const theme = {
'my.app.ComponentStyleName': {
'.rounded': {
borderRadius: 20,
},
backgroundColor: 'navy',
},
};
// Implementation - will apply borderRadius to Component
<Component styleName="rounded"/>
Kế thừa kiểu tự động:
const theme = {
'my.app.ComponentStyleName': {
'my.app.ChildComponentStyleName': {
backgroundColor: 'red',
},
'.rounded': {
borderRadius: 20,
},
backgroundColor: 'navy',
},
};
// Implementation - will apply red background color to ChildComponent
<Component styleName="rounded">
<ChildComponent/>
</Component>
Kiểu lồng nhau cho các thành phần đã cấu tạo:
const theme = {
'my.app.ComponentStyleName': {
containerView: {
paddingTop: 10,
},
innerView: {
backgroundColor: 'yellow',
},
},
};
// Of course do not forget to connect Component
function Component({ style }) {
return (
<View style={style.containerView}>
<View style={style.innerView}>
<Text>Warning with yellow background.</Text>
</View>
</View>
);
}
Để làm cho nó hoạt động, bạn cần sử dụng StyleProvider
, thành phần trình bao bọc cung cấp phong cách cho tất cả các thành phần khác thông qua ngữ cảnh. Tương tự với Redux StoreProvider
.
Ngoài ra, bạn cần kết nối thành phần của mình với phong cách connectStyle
để bạn luôn sử dụng thành phần được kết nối. Tương tự với Redux connect
.
export const styledComponent = connectStyle('my.app.ComponentStyleName',
{ ...defaultStyleIfAny })(Component);
Bạn có thể xem ví dụ trong tài liệu.
Một điều cuối cùng, chúng tôi cũng đã cung cấp một tập hợp các thành phần trong UI ToolKit của chúng tôi, những thành phần này đã được kết nối với kiểu, vì vậy bạn có thể chỉ cần nhập chúng và tạo kiểu theo phong cách / chủ đề chung của mình.