React Native 样式表中的对象
Object in StyleSheet in React Native
我想知道在 .less 中是否可以使用 React Native 中的 StyleSheet 对象对一些对象进行分组。
例如,如果我渲染这样的东西:
<View style={styles.wrapper}>
<View style={styles.wrapper.left}></View>
<View style={styles.wrapper.right}></View>
</View>
并有一个像这样的样式表对象:
const styles = StyleSheet.create({
wrapper: {
/* Some properties */,
left: {
/* Some properties */,
},
right: {
/* Some properties */,
},
}
})
谢谢!
您可以使用 getter 来达到这个目的
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get
您可以将其与 StyleSheet.create 一起使用
let style = {
wrapper: {
color: "red",
position: "absolute",
},
get left() {
return {
...this.wrapper,
left: 0,
};
},
get right() {
return {
...this.wrapper,
right: 0,
};
},
};
console.log(style.left)
let style2 = {
wrapper: {
prop: {
color: "red",
position: "absolute",
},
get top() {
return {
...this.prop,
top: 0,
};
},
get bottom() {
return {
...this.prop,
bottom: 0,
};
},
},
};
console.log(style2.wrapper.bottom);
我想知道在 .less 中是否可以使用 React Native 中的 StyleSheet 对象对一些对象进行分组。
例如,如果我渲染这样的东西:
<View style={styles.wrapper}>
<View style={styles.wrapper.left}></View>
<View style={styles.wrapper.right}></View>
</View>
并有一个像这样的样式表对象:
const styles = StyleSheet.create({
wrapper: {
/* Some properties */,
left: {
/* Some properties */,
},
right: {
/* Some properties */,
},
}
})
谢谢!
您可以使用 getter 来达到这个目的
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get
您可以将其与 StyleSheet.create 一起使用
let style = {
wrapper: {
color: "red",
position: "absolute",
},
get left() {
return {
...this.wrapper,
left: 0,
};
},
get right() {
return {
...this.wrapper,
right: 0,
};
},
};
console.log(style.left)
let style2 = {
wrapper: {
prop: {
color: "red",
position: "absolute",
},
get top() {
return {
...this.prop,
top: 0,
};
},
get bottom() {
return {
...this.prop,
bottom: 0,
};
},
},
};
console.log(style2.wrapper.bottom);