Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将默认道具值设置为自定义状态减少组件

我有一个非常简单的组件,名为Divider,这里是源代码:

代码语言:javascript
运行
AI代码解释
复制
import React from "react";
import { StyleSheet, View } from "react-native";

export default class Divider extends React.Component {
  render() {
    return (
      <View style = { styles.separator } />
    );
  }
}

const styles = StyleSheet.create({
  separator: {
    height: StyleSheet.hairlineWidth,
    marginBottom: 8,
    backgroundColor: "#FFFFFF80",
  },
});

我试图实现的是,styles.separator中的值成为该组件的默认值,因为这些值是我在大多数情况下使用的值,但在某些边缘情况下,我需要将marginBottom更改为16

所以大多数情况下我只想做<Divider />,但有时<Divider marginBottom = 16 />

我现在看到的是下面这样的东西,但是很明显这是行不通的。

代码语言:javascript
运行
AI代码解释
复制
import React from "react";
import { StyleSheet, View } from "react-native";

export default class Divider extends React.Component {
  static defaultPropts = {
    marginTop: 0,
    marginBottom: 8,
    backgroundColor: "#FFFFFF80",
  }

  render() {
    return (
      <View style = {{
        height: StyleSheet.hairlineWidth,
        marginTop: {this.props.marginTop},
        marginBottom: {this.props.marginBottom},
        backgroundColor: {this.props.backgroundColor},
      }} />
    );
  }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-09-12 06:43:16

因此,经过一番研究后,我发现这是可行的。

代码语言:javascript
运行
AI代码解释
复制
import React from "react";
import { Dimensions, StyleSheet, View } from "react-native";

export default class Divider extends React.Component {
  static defaultProps = {
    customWidth: Dimensions.get("window").width / 2.0,
  }

  render() {
    const halfWidth = this.props.customWidth 

    return (
      <View style = { [styles.separator, {width: halfWidth}] } />
    );
  }
}

const styles = StyleSheet.create({
  separator: {
    height: StyleSheet.hairlineWidth,
    backgroundColor: "#FFFFFF80",
  },
});

所以现在每当我使用<Divider />时,它的宽度将是屏幕大小的一半,但是如果我使用<Divider customWidth = { 10 },那么它将覆盖默认值,而不是10 dp。

票数 0
EN

Stack Overflow用户

发布于 2017-09-12 05:30:12

您可以通过道具接收自定义样式,并将它们作为数组在组件样式中使用。当您在组件的后面调用道具样式时,它将覆盖它已经拥有的任何相同的样式属性。

例如,假设您有一个名为“Card”的组件,您可以这样编写您的组件:

代码语言:javascript
运行
AI代码解释
复制
<View style={[style.cardStyle, props.style]}>
  {props.children}
</View>

把它叫做<Card style={{ backgroundColor: '#FFFFFF'}} />

因此,它从自己的组件中获得了所有定义的“cardStyle”,还添加了道具接收到的样式。

希望能帮上忙。

编辑:

你可以试试这样的东西

代码语言:javascript
运行
AI代码解释
复制
import React from "react";
import { StyleSheet, View } from "react-native";

const Divider = (props) => {
      <View style = {{
        height: StyleSheet.hairlineWidth,
        marginTop: {this.props.marginTop},
        marginBottom: {this.props.marginBottom},
        backgroundColor: {this.props.backgroundColor},
      }} />
}

Divider.defaultProps = {
    marginTop: 0,
    marginBottom: 8,
    backgroundColor: "#FFFFFF80",
  }

export default Divider;

如果对你有用的话请告诉我。

票数 1
EN

Stack Overflow用户

发布于 2017-09-12 05:28:58

你可以这样做

代码语言:javascript
运行
AI代码解释
复制
export default class Divider extends React.Component {
 render() {
 return (
  <View style = {{
    height: StyleSheet.hairlineWidth,
    marginTop: {this.props.marginTop},
    marginBottom: {this.props.marginBottom},
    backgroundColor: {this.props.backgroundColor},
   }} />
  );
 }
}

Divider.defaultProps = {
  marginTop: 0,
  marginBottom: 8,
  backgroundColor: "#FFFFFF80",
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46177518

复制
相关文章
最全总结 | 聊聊 Python 办公自动化之 PPT(下)
作为办公自动化 PPT 系列篇的最后一篇文章,我们将 PPT 中的高级功能及常用点
AirPython
2020/12/02
1.6K0
最全总结 | 聊聊 Python 办公自动化之 PPT(下)
python可视化图表(python 显示图片)
它是用来创建 总画布/figure“窗口”的,有figure就可以在上边(或其中一个子网格/subplot上)作图了,(fig:是figure的缩写)。
全栈程序员站长
2022/08/01
9380
python可视化图表(python 显示图片)
echarts教程(四): 配置hover时突出显示图例,隐藏其他图例
达到的效果是,隐藏其他图例,只显示当前hover的图例,在emphasis中也可以配置更多的hover效果
拿我格子衫来
2022/01/24
3.1K0
echarts教程(四): 配置hover时突出显示图例,隐藏其他图例
qcustomplot添加图例_qchart显示点数据
LXTracer::LXTracer(QCustomPlot *_plot, TracerType _type, QObject *parent)
全栈程序员站长
2022/11/08
2.3K0
python-pptx的基本使用
在ppt中所有的元素均被当成一个shape,slide.shapes表示幻灯片类中的模型类,placeholders中为每个模型,采用slide_layouts[1]中包含两个文本框,所以printlen(slide.shapes.placeholders) 话为2
py3study
2020/01/08
3.3K0
Power BI DAX自定义图表的图例怎么画
本公众号已经使用DAX内嵌SVG的方式自定义了一大票图表,读者可点击本文上方的#图表标签查看。很多时候,图表需要使用图例,例如下方的同期对比图:
wujunmin
2022/07/13
1.9K0
Power BI DAX自定义图表的图例怎么画
数据可视化设计指南
数据可视化是一种将密集复杂数据信息以视觉图形的形式呈现。设计出来的视觉效果简化了数据,让用户分析研究比较数据变得容易以及可以更好地向领导或者团队讲述“故事”——可以帮助用户更好地做出决策。
Banber可视化云平台
2021/07/06
6.4K0
数据可视化设计指南
图表的标签显示设置
腾讯云商业智能分析产品由北京永洪商智科技有限公司提供,永洪BI-一站式大数据分析平台 图表标签设置是编辑报告中常见的操作,这里说一下图表标签设置的常见问题。图表标签显示设置具有一定的通用性,这里以柱
腾讯云商业智能分析团队
2017/08/28
2.9K0
图表的标签显示设置
判断矩形是否重叠 Python
用具有x,y两个整型变量成员的结构类型SPoint来表示坐标点。用SRect结构类型来描述矩形,其中包含p1和p2两个SPoint成员分别表示矩形对角线上的两个点。
叶茂林
2023/07/30
3600
Excel图表技巧07:创建滑动显示的图表
下图1是我在chandoo.org上看到的一个图表技巧。很有趣的图表显示方式,你能想到吗?
fanjy
2021/01/20
1.5K0
Excel图表技巧07:创建滑动显示的图表
Python批量转换ppt文件为pptx文件
代码功能:把PowerPoint 2003以及更低版本的ppt文件批量转换为PowerPoint 2007及更高版本的pptx文件。
Python小屋屋主
2018/07/23
1.9K0
Python批量转换ppt文件为pptx文件
pptx:Python的PPT操作库
Mac用户打开终端/Terminal输入:pip3 install python-pptx
luckpunk
2023/09/29
1.1K0
pptx:Python的PPT操作库
用于处理图表&图形的VBA代码大全3
图表标题是在图表顶部的文本。所有的代码以cht开始,假设已经使用上面介绍的代码引用了图表。
fanjy
2023/08/30
4350
用于处理图表&图形的VBA代码大全3
python多图表显示在一张图
python多图表显示在一张图 # 导入相关库 import pandas as pd import numpy as np from pandas import Series,DataFrame # 导入泰坦尼的数据集 data_train = pd.read_csv("./data/titanic/Train.csv") data_train.head() import matplotlib.pyplot as plt # 设置figure_size尺寸 plt.rcParams['figure.
AI拉呱
2021/01/14
1.1K0
Matplotlib配置图例legend()设置透明和并排显示
下面我们将以加利福尼亚州所有城市的数据(提取码666)为例来绘图,最终效果是将绘制出各个城市的位置,同时以城市面积大小来使用不同大小的圆表示
汀丶人工智能
2022/12/21
1.8K0
Matplotlib配置图例legend()设置透明和并排显示
重要的是图表思维,而不是工具
很久没有作图了,主要是一时找不到应该练手的案例。 然后昨天逛网易数独栏目的数据新闻,看到一幅还不错的案例,对于我来说值得一试,然后就手痒给照葫芦画瓢弄出来了。(主要是其中涉及到的细节处理很麻烦) 当然过程是花了些时间的,主要是需要慢慢打磨其中的细节,需要利用很多技术来处理图形版面的交接位置。 令我感触最深的是,想要用ggplot2随心所欲的画图,ggplot2掌握的再熟练,也只是勉强过的了技术关,而图表背后的思维和结构更考验人,更具有挑战性。 好在我学习R语言之前,就已经利用Excel临摹了大量的高难度信息
数据小磨坊
2018/04/11
9870
重要的是图表思维,而不是工具
通过python-pptx模块操作ppt文件
ppt通过其精美的可视化技巧以及良好的演示效果,成为了职场人士的必备技能。ppt的设计是一门大学问,无论是设计技巧,还是操作方法,都衍生出了专门的课程。
生信修炼手册
2020/12/11
1.3K0
Python自动化操作PPT看这一篇就够了
官方文档:https://docs.microsoft.com/zh-cn/office/vba/api/powerpoint.shape.copy
Python小二
2020/11/24
6.4K0
Python自动化操作PPT看这一篇就够了
【Qt编程】基于QWT的曲线绘制及图例显示操作
http://blog.csdn.net/tengweitw/article/details/41911035
bear_fish
2018/09/20
7.1K0
【Qt编程】基于QWT的曲线绘制及图例显示操作
点击加载更多

相似问题

Python-pptx:“显示与图表重叠的图例”

215

高图表图例事件而不显示图例

10

谷歌图表图例-重叠文本

28

图表顶部重叠的插图图例

10

与图表重叠的kendo ui图表图例

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档