当前位置: 首页 > 面试题库 >

在React Native中将道具传递到外部样式表中?

朱啸
2023-03-14
问题内容

我是React和React Native的新手。目前,对于每个组件,我都将代码分为2个单独的文件:

  1. index.js 对于所有的React代码,以及;
  2. styles.js 用于StyleSheet

有没有办法将道具传递到外部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

  }

});

上面的代码不起作用,但更多的地方只是为了让我理解我正在尝试做的事情。任何帮助深表感谢!


问题答案:

创建一个将iconColor和iconSize作为参数并返回StyleSheet对象的类

// styles.js

export default class StyleSheetFactory {
    static getSheet(iconSize, iconColor) {
        return StyleSheet.create({
            icon : {
                color: iconColor,
                fontSize: iconSize
            }
        })
    }
}

// index.js

render() {
    let myStyleSheet = StyleSheetFactory.getSheet(64, 'red')
}


 类似资料:
  • 问题内容: 给卡代码在这里: 卡 我如何更新卡片样式或任何材料UI样式 如下: 当我尝试最新的时,我得到了 当我更新代码为: 也 代替 我在网页上弄乱了组件卡样式。 顺便说一句,我通过以下道具: 请帮忙! 问题答案: 该答案是在4.0版之前严重过时的! 认真地说,如果要对功能组件进行样式设置,请使用。 在詹姆斯谭答案是4.x版本的最佳答案 下面的任何内容都是古老的: 使用时,您可以访问,但不能访问

  • 我正在使用样式组件库与TypeScript。当创建从react组件继承样式化组件时,我遇到了问题。是node_module(我无法更改的行为)。但是将所有道具传递给。 如果具有没有的任何属性,则控制台中会显示警告消息,因为没有属性: 警告:React无法识别DOM元素上的属性。如果您有意希望它作为自定义属性出现在DOM中,请将其拼成小写。如果您不小心从父组件传递了它,请将它从DOM元素中移除。 在

  • 问题内容: 我只是在 文档中读到以下错误,它将影响渲染时间。如果是这种情况,我该如何重构代码并使用所需的道具来创建动态样式? 先感谢您。 标签组件 问题答案: 我相信文档在说的是您应该避免在渲染组件中包含样式: 做这个 代替这个 因为发生的是组件的Props更改,所以组件将重新渲染并且样式将重新生成。因此,有必要将其分开。 因此,如果您进一步阅读 基于道具 的 适应 部分,他们将对此进行解释: 之

  • 我使用的反应与反应路由器的项目,我需要传递道具的子组件从路由。 我有这样的设置: App.js Home.js 问题是主组件总是给出错误“未定义”。我无法理解如何解决这个问题。如果我从Home.js中移除道具,组件渲染就很好。但当我尝试访问道具时,会出现错误。

  • 我目前正在写一个针对电子商务网站的测试。当用户搜索特定产品时,将返回项目列表。我希望做的是将一个特定的值(例如数字2)传递到我的测试场景中,在这一点上可以传递到我的XPath表达式(第n个子项),从而能够选择该项。 XPath不正确,不确定如何修复。如果有人能帮忙,我将不胜感激。 结果消息:给定的选择器//@class='itemContainer: nth-child(3)'无效或不会导致Web

  • 我想将自定义属性传递到我的Redux表单字段。文件中说: 传递给字段的任何自定义道具都将与输入和元对象合并到同一级别的道具对象中。 但将自定义道具传递给字段组件将引发编译错误: 类型“”的属性“myProp”不存在 在props属性中,我只能添加一组预定义的属性,如占位符或类型。传递另一个道具将抛出此错误: 键入“{name:“E-Mail”;组件:(props:any)= 是否有可能将自定义道具