【发布时间】:2017-11-30 17:30:27
【问题描述】:
我想为 React Native 编写类似 SCSS 的东西:它会解析你的组件 jsx 和特殊的类似 SCSS 的样式,并返回一个带有重新设计的样式和 jsx 的普通 RN 组件。
假设我们有这个反应代码:
class MyClass extends Component {
render() {
return (
<View style={styles.container}>
<Text>I remember syrup sandwiches</Text>
</View>
);
}
}
我还有 SCSS-ish 样式,其中每个带有容器“类”的父组件中的 Text 组件都将具有我们提供的相同道具。
const styles = StyleSheet.create(
toRNStyles({
container: {
Text: { color: 'red' },
},
})
);
最后我们需要这样的输出:
...
<View style={styles.container}>
<Text style={styles._Text_container}>
I remember syrup sandwiches
</Text>
</View>
...
那么如何从类外部获取从 render 方法返回的 jsx?
【问题讨论】:
-
出于什么目的需要输出?如果您需要在运行时进行调整,您可以按照@yoda 的建议使用
render(),或者使用高阶组件包装组件。此外,输出不是 JSX(这是使用组件的语法),而是一个 React Element(它是一个描述组件实例的对象) -
为什么要这样做?提供一些上下文。可能这不是您想要解决的问题。
-
您希望 jsx 作为字符串文字?
-
@Chris 是的,所以我可以解析它。
标签: javascript reactjs react-native