Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >React如何多映射值以提高效率

React如何多映射值以提高效率
EN

Stack Overflow用户
提问于 2019-02-25 11:42:35
回答 1查看 26关注 0票数 0

我有一个查找数组,它将颜色映射到一个值上。传入的值可以来自多个属性,例如

代码语言:javascript
运行
AI代码解释
复制
const data = {
  status4Weeks: "2",
  status8Weeks: "3",
  status12Weeks: "4"
};

我的查找将找到值,例如"4“,并给4一个指定的颜色。目前,我不得不为这3个属性编写3个相同的映射。我需要做一些映射,查看键,分配颜色,并将其映射到UI中。我的UI也被复制了3次。

代码语言:javascript
运行
AI代码解释
复制
const COLORS = {
  one: "#4caf50",
  two: "#81c784",
  three: "#ffee58",
  four: "#FFC107",
  five: "#ff7043",
  six: "#f44336",
  seven: "#455a64"
};

const status4WeeksColor = [
  data.status4Weeks === "1"
    ? COLORS.one
    : data.status4Weeks === "2"
    ? COLORS.two
    : data.status4Weeks === "3"
    ? COLORS.three
    : data.status4Weeks === "4"
    ? COLORS.four
    : data.status4Weeks === "5"
    ? COLORS.five
    : data.status4Weeks === "6"
    ? COLORS.six
    : data.status4Weeks === "7"
    ? COLORS.seven
    : COLORS.seven
];

下面是其他两个属性的副本...

代码语言:javascript
运行
AI代码解释
复制
const status8WeeksColor = [
  data.status8Weeks === "1"
    ? COLORS.one
    : data.status8Weeks === "2"
    ? COLORS.two
    : data.status8Weeks === "3"
    ? COLORS.three
    : data.status8Weeks === "4"
    ? COLORS.four
    : data.status8Weeks === "5"
    ? COLORS.five
    : data.status8Weeks === "6"
    ? COLORS.six
    : data.status8Weeks === "7"
    ? COLORS.seven
    : COLORS.seven
];

const status12WeeksColor = [
  data.status12Weeks === "1"
    ? COLORS.one
    : data.status12Weeks === "2"
    ? COLORS.two
    : data.status12Weeks === "3"
    ? COLORS.three
    : data.status12Weeks === "4"
    ? COLORS.four
    : data.status12Weeks === "5"
    ? COLORS.five
    : data.status12Weeks === "6"
    ? COLORS.six
    : data.status12Weeks === "7"
    ? COLORS.seven
    : COLORS.seven
];

完整的代码见我的codesandbox:https://codesandbox.io/s/pj0yk6z91x

我敢肯定,这个页面上的代码太多了!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-25 11:50:45

您可以更改映射颜色的方式:可以使用字符串数值代替word属性名称,如下所示:

代码语言:javascript
运行
AI代码解释
复制
const COLORS = {
  '1': "#4caf50",
  '2': "#81c784",
  '3': "#ffee58",
  '4': "#FFC107",
  '5': "#ff7043",
  '6': "#f44336",
  '7': "#455a64"
}

通过这种方式,您只需:

代码语言:javascript
运行
AI代码解释
复制
const status4WeeksColor = COLORS[data.status4Weeks]
// or const status8WeeksColor = COLORS[data.status8Weeks]
// or const status12WeeksColor = COLORS[data.status12Weeks]

如果你需要一个默认值,你可以这样做:

代码语言:javascript
运行
AI代码解释
复制
const DEFAULT = '7'
const status4WeeksColor = COLORS[data.status4Weeks] || COLORS[DEFAULT]

通过这种访问,您可以轻松地映射您的数组。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54865409

复制
相关文章
EF Core中的多对多映射如何实现?
EF 6.X中的多对多映射是直接使用HasMany-HasMany来做的。但是到了EF Core中,不再直接支持这种方式了,可以是可以使用,但是不推荐,具体使用可以参考《你必须掌握的EntityFramework 6.X与Core 2.0》一文。在这里我就详细的说下如何在EF core下实现。 首先就是实体类的建立:
Ryan_OVO
2023/10/19
4790
Hibernate之关联关系映射(一对多和多对一映射,多对多映射)
别先生
2018/01/02
4.9K0
Hibernate之关联关系映射(一对多和多对一映射,多对多映射)
mybatis文件映射之利分布查询时传递多列值 (七)
我们可以将<collection property="employee" select="com.gong.mybatis.dao.EmployeeMapperPlus.getEmpsByDeptId" column="id"> 这里的column="id"改为column="{deptId=id}"。
西西嘛呦
2020/08/26
9130
Entity Framework 多对多映射
上一篇文章我们讲解了EF中的一对对多的关系映射,这篇文章我们讲解EF中的多对多(Many-to-Many Relationship)关系映射。这篇文章我们同样通过一个简单的例子来讲解多对多的关系映射。
喵叔
2020/09/08
1.1K0
Entity Framework 多对多映射
【SSH快速进阶】——Hibernate 多对多映射
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/details/50394226
DannyHoo
2018/09/13
4580
【SSH快速进阶】——Hibernate 多对多映射
NHibernate 多对多映射的数据更新
最近在用 NHibernate 做多对多更新时突然发现 NHibernate 更新的策略很差, 对多对多关系的更新居然是先全部删除再插入全部数据, 感觉非常奇怪, 现在还原如下:
beginor
2020/08/10
1K0
NHibernate 多对多映射的数据更新
【SSH快速进阶】——Hibernate 多对一映射 和 一对多映射
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/details/50339147
DannyHoo
2018/09/13
6630
【SSH快速进阶】——Hibernate 多对一映射 和 一对多映射
Java——简单Java类深入(数据表与简单Java类、一对多映射、双向一对多映射、多对多映射)
简单Java类是整个项目开发的灵魂,其有严格的开发标准,最为重要的是它要与数据表完全对应。由于目前没有接触过多的程序设计功能,所以对于此处的访问就有了一些限制,目前要求可以完成如下两个操作:
Winter_world
2020/09/25
2.6K0
Java——简单Java类深入(数据表与简单Java类、一对多映射、双向一对多映射、多对多映射)
以 React 的方式思考
React 很棒的一点是创建应用中引导你思考的过程。这篇文档中,我们将通过运用React创建一个产品搜索列表,来引导你熟悉这个思考过程。
fanzhh
2019/08/20
3.5K0
以 React 的方式思考
Hibernate单向多对一映射
Hibernate的多对一映射(Many-to-One)用于建立两个实体类之间的关联关系,其中一个实体类可以关联到多个另一个实体类的实例,而另一个实体类只能关联到一个特定的实例。这种关系是单向的,即只能从多的一方引用到一的一方,而无法反向引用。
堕落飞鸟
2023/05/15
3790
react事件传值
React 父子组件传值 写法一:bind绑定this class XiaojiejieItem extends Component { render() { return ( <li onClick={this.delItem.bind(this)}>{this.props.list}</li> ); } delItem() { console.log(this.props.index) } } 写法二
hss
2022/02/25
4440
react父子传值
父传子 类组件 import React, { Component } from 'react'; // 子组件 class ChildCpn extends Component { // 如果只是下面的形式,可以省略 // constructor(props) { // super(props); // } render() { const { name, age, height } = this.props; return ( <h2>子组件展示
hss
2022/02/25
3330
react组件传值
父传子 父组件通过props直接传给子组件 子传父 父元素通过props给子元素传递一个接收值的回调函数 跨级组件通信(爷孙) 1.逐层传递的props,爷-父-子。比较麻烦 2. React.createContext()Api 1context是一个全局变量,像是一个大容器,在任何地方都可以访问到。 2我们可以把要通信的信息放在context上,然后在其他组件中可以随意取到; 3但是React官方不建议使用大量context,尽管他可以减少逐层传递。 4但是当组件结构复杂的时候,我们并不知道conte
心念
2023/01/11
3770
react 父子传值_react 父子组件传值 兄弟组件传值「建议收藏」
console.log(data1, data2, e) //输出 1 2 event内容
全栈程序员站长
2022/08/27
2.6K0
React多页面跳转[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139226.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/02
1.6K0
Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程案例演示
Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http://
逸鹏
2018/04/10
1.3K0
Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程案例演示
Hibernate双向一对多映射
双向一对多映射是Hibernate中常见的关系映射之一。在这种映射中,两个实体类之间存在一个一对多的关系,其中一个实体类作为“一”的一方,另一个实体类作为“多”的一方。
堕落飞鸟
2023/05/15
9510
Hibernate映射多对多关联关系
在Hibernate中,多对多关联关系(Many-to-Many relationships)是指两个实体类之间的一种关系,其中一个实体类可以与多个另一个实体类相关联,而同样一个实体类也可以与多个另一个实体类相关联。例如,在一个公司中,一个员工可能会在不同的项目中工作,而同样一个项目也可能需要多个员工协同完成。在ORM框架中,多对多关系的映射可以使用中间表、双向一对多关系和关联实体类等多种方式实现。
堕落飞鸟
2023/05/16
1.4K0
React父子组件传值
版权声明:原创不易,多多珍惜 https://blog.csdn.net/wonaixiaoshenshen/article/details/89221569
我乃小神神
2019/07/02
7160
React父子组件传值
文章目录 写在前面 示例图1 示例图2 功能描述 代码实现 注意的点⚠️ 写在前面 今天我们记录一下react的父子组件的传值,用到的还是比较多的,我们做一个简单的demo进行说明 示例图1 没有数据的情况下显示形式 示例图2 有数据的情况显示形式 功能描述 首先启动以后进入没有数据的view,然后我们输入任意字符,进行添加,会在下面NoData区域进行显示,鼠标放置上面的时候提示删除该项,鼠标点击,进行该项的删除!这里的两个组件分别是父组件包括input和button,子组件负责进行渲
何处锦绣不灰堆
2022/05/09
6650
React父子组件传值

相似问题

构建React/Redux应用程序以提高效率

22

访问多映射值

15

Java:多键/值映射

31

循环遍历多映射值

30

如何在React中使用多对象数组的映射

16
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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