Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >反应材料UI v5与defaultProps的样式

反应材料UI v5与defaultProps的样式
EN

Stack Overflow用户
提问于 2022-03-21 02:22:33
回答 1查看 1.3K关注 0票数 3

当使用多个样式组件时,顶部的组件会覆盖其他默认道具。

代码语言:javascript
运行
AI代码解释
复制
import { styled } from '@mui/material/styles'
import { Badge } from '@mui/material'


const Badge1 = styled(Badge)``

// this works if Badge1 is used directly: <Badge1 />
Badge1.defaultProps = {
    max: Infinity
}


const Badge2 = styled(Badge1)``    // styled Badge1

// this overrides defaultProps from Badge1. Prop max: Infinity does no apply here
Badge2.defaultProps = {
    variant: 'standard'
}

Badge2只有变体:“标准”默认道具。它跳过max:无穷大

我怎样才能让所有的defaultProps从每一个级别

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-21 09:42:17

当您使用情感通过多个styled调用对组件进行样式化时,情感会将样式层折叠到单个包装组件中,而不是在第一个包装器周围添加额外的包装器。情绪保留上一个包装器中的defaultProps。,但当设置Badge2.defaultProps时,您将覆盖它。

可以使用以下语法保留任何以前的defaultProps

代码语言:javascript
运行
AI代码解释
复制
Badge2.defaultProps = {
    ...Badge2.defaultProps,
    variant: 'standard'
}

下面是一个示例,演示每个styled包装的默认道具会发生什么。这个修复是用StyledAgainWithDefaultRetainExisting演示的。

代码语言:javascript
运行
AI代码解释
复制
import styled from "@emotion/styled";

function MyComponent({ className, ...defaults }) {
  return <div className={className}>Defaults: {JSON.stringify(defaults)}</div>;
}
MyComponent.defaultProps = {
  orig: true
};

const StyledMyComponent = styled(MyComponent)`
  background-color: blue;
  color: white;
`;
StyledMyComponent.defaultProps = {
  styled: true
};

const StyledAgainNoDefaultsAdded = styled(StyledMyComponent)`
  background-color: purple;
`;

const StyledAgainWithDefault = styled(StyledMyComponent)`
  background-color: green;
`;
StyledAgainWithDefault.defaultProps = {
  styledAgain: true
};

const StyledAgainWithDefaultRetainExisting = styled(StyledMyComponent)`
  background-color: brown;
`;
StyledAgainWithDefaultRetainExisting.defaultProps = {
  ...StyledAgainWithDefaultRetainExisting.defaultProps,
  styledAgainRetain: true
};

export default function App() {
  return (
    <div>
      <MyComponent />
      <StyledMyComponent />
      <StyledAgainNoDefaultsAdded />
      <StyledAgainWithDefault />
      <StyledAgainWithDefaultRetainExisting />
    </div>
  );
}

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

https://stackoverflow.com/questions/71556007

复制
相关文章
Reactive UI -- 反应式编程UI框架入门学习 (转载非原创)
反应式编程是一种相对于命令式的编程范式,由函数式的组合声明来构建异步数据流。要理解这个概念,可以简单的借助Excel中的单元格函数。
wxilejun
2022/08/09
2.4K0
CSS字体样式与样式效果
通过CSS样式表,可以自定义字体。下载想要的字体库,然后在工程里创建一个存放字体库文件的目录,把下载好的字体库文件存放进去,之后就可以引用这目录里面的字体库了,使用@font-face来自定义字体库,例如我下载了一个×××字体,然后在工程中创建了一个font目录,把字体库文件放入进去:
端碗吹水
2020/09/23
4.6K0
CSS字体样式与样式效果
BIO与反应器模式
  我们熟知的Socket编程就是一种BIO,一个socket连接一个处理线程(这个线程负责这个Socket连接的一系列数据传输操作)。阻塞的原因在于:操作系统允许的线程数量是有限的,多个socket申请与服务端建立连接时,服务端不能提供相应数量的处理线程,没有分配到处理线程的连接就会阻塞等待或被拒绝。   比如说,当我们最开始使用Java编写网络请求,都是建立一个ServerSocket,它负责绑定IP地址,启动监听端口;然后,Socket负责发起连接操作,连接成功建立后,双方通过输入输出流进行同步阻塞式通信;如果没有成功建立,要么等待,要么被拒绝。即:一个连接,要求Server对应一个处理线程。   简单描述一下BIO的服务端通信模型:采用BIO通信模型的服务端,通常由一个独立的Acceptor线程负责监听客户端的连接,它接收到客户端连接请求之后为每个客户端创建一个新的线程进行链路处理每次处理完成后,通过输出流返回应答给客户端,线程销毁。即典型的一请求一应答通信模型。
Java阿呆
2020/11/04
6530
BIO与反应器模式
React中static defaultProps报错问题详解
在react中可以定义默认props,使用es5时,可以使用getDefaultProps:
李维亮
2021/07/09
6440
JavaFX入门(五):使用CSS样式美化你的UI控件
CSS(层叠样式表,Cascading Style Sheets)原来是被用来在网页开发中表现HTML元素样式的一种文本标记语言。HTML用来展现内容,CSS被用来设计内容的样式,这样做的好处就是内容和样式相分离。CSS先后被用到Adobe的RIA开发技术Flex,C++的GUI框架Qt以及JavaFX技术上。如果对CSS不是很熟悉,没关系,十分钟入门CSS的一个教程:W3CSchool CSS教程。
卡尔曼和玻尔兹曼谁曼
2019/01/22
10.8K0
JavaFX入门(五):使用CSS样式美化你的UI控件
Android UI之自定义Window Title样式
Android提供了很多控件便于开发者进行UI相关的程序设计。但是很多时候,默认的一些UI设置不足以满足我们的需求,要么不好看,要么高度不够,亦或者是与应用界面不协调。于是这时候需要通过自定义样式或者自定义控件来实现。
技术小黑屋
2018/09/04
1.3K0
Android UI之自定义Window Title样式
vue 修改 element-ui select组件样式坑
修改element-ui select的样式 <el-select v-if="options.length > 0" @change="handleSelectKeyChange" :value="searchKey" slot="prepend" style="width:110px" placeholder="请选择" :popper-append-to-body="false" popper-class="select-popper"> <el-option
小蔚
2022/05/23
1.6K0
V5加密如何解密? V5解密方法全过程分享
(function (js_body) { // 脱壳 && 解密 let js_arr = js_body.split("\n").pop().split(';'), fun_name = /var\s+(_0x[a-z0-9]+)=/.exec(js_arr[6])[1], reg_str = fun_name + '\\(' + "'([^']+)',\s*'([^']+)'" + '\\)', js_str = js_arr.slice
用户8099761
2023/05/11
5820
react 中router v6 与 v5 区别
react-router-dom 更新到v6 , 本文分享下v6 与 v5 的一些区别
用户9914333
2022/07/22
2.8K0
AI 在材料制造业的进展与应用
聊起 AI,画面都充斥着机械语言:精密高级的芯片,光怪陆离的智能产业……你眼中的 AI 有什么样的能力?能给传统行业带来哪些变革与发展?基于此,云加社区联手知乎科技,从知乎AI 与传统行业相关话题中精选内容落地社区专题「 AI 与传统行业的融合 」。
腾讯云开发者社区
2020/04/14
1.7K1
基于 React 实现一个 Transition 过渡动画组件
过渡动画使 UI 更富有表现力并且易于使用。如何使用 React 快速的实现一个 Transition 过渡动画组件?
用户6167509
2020/02/28
6.1K0
【材料力学】二:轴向拉伸与压缩
上图中a,b,c三个图两边受力都不同,但在杆中间截面上的内力时相同的,所以上图三种不同的组合,因为静力等效,所以可以都换为a图的形式进行计算。
周旋
2020/06/05
2.1K0
React Native实践有感
React Native (简称RN)是Facebook于2015年开源的移动端跨平台开发框架。RN从开源以来已经有6个年头了,有着十分丰富的社区资源和生态,时至今日依然有很多移动端项目都使用RN来开发。本文主要通过以往的项目实践来谈谈在选择RN开发app可能需要注意的一些点,也算是自己的一个踩坑经验总结。
ThoughtWorks
2021/12/01
2.7K0
有了这 18 个免费的React模板以后,也太省事了吧!!
有时需要做一个页面,不是设计师出身的我们肯定不想花大量的时间去构思如何设计一个漂亮的页面,那么此时有一些好看又免费的模板就再好不过啦,这里给你们推荐15个
@零一
2021/05/14
13.5K0
有了这 18 个免费的React模板以后,也太省事了吧!!
单片机理论与实践课程总结与补充材料
部分课程资料:链接:http://pan.baidu.com/s/1slhLrUP 密码:it82
zhangrelay
2019/01/23
9980
电容材料分类_电容有什么材料
大家好,又见面了,我是你们的朋友全栈君。 转自:https://blog.csdn.net/qq_29350001/article/details/51142105?utm_medium=dist
全栈程序员站长
2022/09/23
1.3K0
电容材料分类_电容有什么材料
Sentry 开发者贡献指南 - 前端(ReactJS生态)
本指南涵盖了我们如何在 Sentry 编写前端代码, 并特别关注 Sentry 和 Getsentry 代码库。它假设您使用的是 eslint-config-sentry 概述的 eslint 规则;因此,这里不会讨论由这些 linting 规则强制执行的代码风格。
为少
2021/12/20
7.1K0
【工程材料B】二:金属的晶体结构与缺陷
尤其需要注意C点,C点坐标应为(1/2,1,0),但因为第三个条件,所以它的晶向为【120】。
周旋
2020/06/04
2.1K0
【工程材料B】二:金属的晶体结构与缺陷
ApiPost V5 升级指南
同旧版本相比,ApiPost V5 (以下简称V5)重新规划了底层架构,大大降低了内存使用率;并加入了大量新功能,用户体验也有了全新的提升。但是同旧版相比,很多使用方式有所不同,本文重点讲解以下用户升级后可能遇到的几个小问题。
zyf20010801
2022/06/18
5150
点击加载更多

相似问题

反应材料UI v5与TypeScript的样式

23

样式选择列表材料UI V5

17

反应-材料UI与反应带

68

如何样式材料-ui选择组件与样式组件(不是材料-ui类!)有反应吗?

111

反应组件内部的材料ui样式

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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