我是React和React Native的新手。目前,对于每个组件,我将代码分为两个单独的文件:
index.js
用于所有React代码,以及;styles.js
用于样式表
是否有办法将props传入外部StyleSheet?
示例:index.js
:
render() {
const iconColor = this.props.color || '#000';
const iconSize = this.props.size || 25;
return (
<Icon style={styles.icon} />
);
}
示例styles.js
:
const styles = StyleSheet.create({
icon : {
color: iconColor,
fontSize: iconSize
}
});
上面的代码不起作用,但它更多的只是为了让我想做的事情。任何帮助是非常感谢!
8条答案
按热度按时间rqmkfv5c1#
我宁愿把我的样式放在一个单独的文件styles.js中。在styles.js中:
在你的主类中你可以传递值
或者,您可以直接使用这些值
在你的主类中
kuhbmx9i2#
i在样式表中发送noFooter布尔属性
接受它就像
daupos2t3#
创建一个以iconColor和iconSize为参数并返回StyleSheet对象的类
but5z9lq4#
只需将样式表 Package 在一个函数中,您可以选择性地传递props。
取代:
您需要:
现在当你将它们添加到你的组件中时,而不是
您需要:
由于这是可选的,并且您没有要传递的props,只需执行:
P.S.如果您出于某种原因没有使用TypeScript,请忽略该类型:P
dkqlctbz5#
如果你不想创建一个类,那么你只需要创建一个函数,后面跟着一个键,然后从函数中返回一个对象,你只需要传递一个参数,通过这个参数来计算条件。
你可以按如下方式使用它
ds97pgxw6#
解决方案:
styles.js示例:
rggaifut7#
这里有一个更简单的解决方案。
组件
你可以像以前一样使用样式表,那里没有什么可编辑的。
lokaqttq8#
我们可以创建一个样式表函数,然后在main函数中调用它,而不是将props传递给StyleSheet。然后我们可以在函数中使用该变量。我们甚至不会得到TypeScript错误。
现在创建函数后,我们可以像下面这样在main函数中调用该函数
下面是如何实现代码的示例