首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >基于多类型脚本接口的React prop分离

基于多类型脚本接口的React prop分离
EN

Stack Overflow用户
提问于 2019-05-03 12:12:43
回答 3查看 6.5K关注 0票数 2

在React中,有没有一种方法可以基于扩展了多个其他接口的Typescript接口来分离props对象?我看到的另一种方式是将重复的道具传递给不使用它们的组件,这不是最佳解决方案。

代码语言:javascript
运行
AI代码解释
复制
interface IProps extends IAProps, IBProps {}

const Component1: SFC<IProps> = (props) => 
   return (
     <Component2
         {...props} <--- only IAProps
     />
     <Component3
         {...props} <--- only IBProps
     />
  );
}
EN

回答 3

Stack Overflow用户

发布于 2019-05-03 12:23:25

您可以使用&合并接口。例如<ScreenProps extends {} & SliderProps & ReactNavigationProps>

示例:

代码语言:javascript
运行
AI代码解释
复制
interface AProps {
  testa: any
}

interface BProps {
  testb: any
}


class Test extends Component<AProps & BProps> {
  // ...
}


// or


<IProps extends AProps & BProps>

class Test extends Component<IProps> {
   // ...
}
票数 9
EN

Stack Overflow用户

发布于 2019-05-03 12:25:24

如果你想让你的组件接受任何类型的基于接口的属性,你可以这样做:

代码语言:javascript
运行
AI代码解释
复制
const Component1: SFC<IAProps & IBProps> = (props) => 
       return (
         <Component2
             {...props} <---IAProps
         />
         <Component3
             {...props} <--- IBProps
         />
      );
    }

请注意,:如果不是所有的道具都是必需的,您可以使用每个接口中的可选道具,如下所示:

代码语言:javascript
运行
AI代码解释
复制
interface  IAProps {
    name: string; // required
    age?: number; //optional 

}

或者,如果您的所有接口的弹出窗口都应该标记为required,但您仍然不想在组件中使用它们,您可以这样做:

代码语言:javascript
运行
AI代码解释
复制
const Component1: SFC<Partial<IAProps> & Partial<IBProps>> = (props) => 
       return (
         <Component2
             {...props} <---IAProps
         />
         <Component3
             {...props} <--- IBProps
         />
      );
    }

值得一提的是,Partial会将所有接口属性标记为可选

票数 1
EN

Stack Overflow用户

发布于 2020-06-02 09:24:11

我认为只传递两个不同的道具的简单方法是一个干净的解决方案:

代码语言:javascript
运行
AI代码解释
复制
interface IProps {
    a: IAProps;
    b: IBProps;
}

const Component1: SFC<IProps> = (props) => 
   return (
     <Component2
         {...props.a} <--- only IAProps
     />
     <Component3
         {...props.b} <--- only IBProps
     />
  );
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55969554

复制
相关文章
React prop类型检查与Dom
当应用不断增长时,可以用过类型检查发现很多bug。对于某些应用,可以使用JavaScript扩展工具来完成,比如使用  Flow 或 TypeScript 来检查整个工程。除了引入外部工具之外,React也提供了参数类型检查的功能,只需要为每一个属性指定一个 propTypes 即可:
随风溜达的向日葵
2018/08/02
1.7K0
react中使用prop-types检测props数据类型
在多人开发时,当被人使用自己定义的组件时,有可能出现类型传错的情况,而在自己的组件上加上prop-types,他可以对父组件传来的props进行检查,加入父组件中想传递的是字符串类型‘3’,而传递了一个数字类型3,如果没有类型检查系统不会给与提示,但是有了类型检查以后,再控制台会给你一个类型传递错误的提示。这样在工作中可以快速找到错误。
_kyle
2020/08/24
1.6K0
React学习(5)—— 高阶应用:prop类型检查与真实Dom操作
当应用不断增长时,可以用过类型检查发现很多bug。对于某些应用,可以使用JavaScript扩展工具来完成,比如使用 Flow 或 TypeScript 来检查整个工程。除了引入外部工具之外,React也提供了参数类型检查的功能,只需要为每一个属性指定一个 propTypes 即可:
随风溜达的向日葵
2018/08/15
1.3K0
Python实用脚本(1):读取Prop
JAVA本身提供了对于Properties文件操作的类,项目中的很多配置信息都是放在了Properties文件。但是Python并没有提供操作Properties文件的库,所以,自己动手写个一个可以加载Properties文件的脚本。
py3study
2020/01/09
6850
React报错之`value` prop on `input` should not be null
原文链接:https://bobbyhadz.com/blog/react-value-prop-on-input-should-not-be-null[1]
chuckQu
2022/08/19
7130
React报错之`value` prop on `input` should not be null
React报错之Style prop value must be an object
原文链接:https://bobbyhadz.com/blog/react-style-prop-value-must-be-an-object[1]
chuckQu
2022/08/19
5800
React报错之Style prop value must be an object
Prop 验证 与 非 Prop 的 Attribute
当子组件没有定义对应的Prop来接收父组件传来的值时,这个值将会出现在组件根元素的Attribute上面。
小小杰啊
2022/12/21
5060
React报错之You provided a `checked` prop to a form field
当我们在多选框上设置了checked 属性,却没有onChange 处理函数时,会产生"You provided a checked prop to a form field without an onChange handler"错误。为了解决该错误,可以使用defaultChecked 属性,或者在表单字段上设置onChange 属性。
chuckQu
2022/09/20
1.7K0
React报错之You provided a `checked` prop to a form field
React Native之prop-types进行属性确认
React Native已经升级到0.51.0了,版本升级很快,但是对老项目也会有一些问题,常见的就是属性找不到的问题。例如: 主要原因是随着React Native的升级,系统废弃了很多
xiangzhihong
2018/02/06
1.5K0
React Native之prop-types进行属性确认
react异常 Each child in a list should have a unique “key” prop
react异常警告:Each child in a list should have a unique “key” prop
江一铭
2022/12/02
1.1K0
react异常 Each child in a list should have a unique “key” prop
【react】利用prop-types第三方库对组件的props中的变量进行类型检测
1.引言——JavaScript就是一个熊孩子 1.1对于JSer们来说,js是自由的,但同时又有许多让人烦恼的地方。javascript很多时候就是这么一个熊孩子,他很多时候并不会像C和java这些
啦啦啦321
2018/01/03
1.6K0
【react】利用prop-types第三方库对组件的props中的变量进行类型检测
前后端分离的接口规范
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/03/24
5800
基于create-react-app构建多页面应用框架
运行这些命令会在当前目录中创建一个名为 multiple-page 的目录。在该目录中,它将生成初始项目结构并安装依赖项,目录结构如下所示(tree -I "node_modules"):
lqmeta
2020/07/05
5.3K3
基于create-react-app构建多页面应用框架
聊聊前后端分离的接口规范
来源 | https://www.jianshu.com/p/c81008b68350
程序猿DD
2021/10/14
8000
执行接口脚本
4、执行接口脚本,此接口不能做为正常接口使用,只是一个最简单的连接接口,大家不要被迷祸
用户1168904
2021/05/17
8310
generator-ivweb 基于react-redux的多页脚手架
generator-ivweb是由腾讯IVWEB团队设计的脚手架,基于团队开源项目feflow,feflow是一个前端集成开发环境,详细介绍可以看这里:feflow。
腾讯IVWEB团队
2020/06/24
5110
React多页面跳转[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139226.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/02
1.5K0
前后端分离的接口设计规范
RESTful API设计风格:RESTful API是一种基于HTTP协议的API设计风格,它包括使用HTTP动词(GET、POST、PUT、DELETE等)来表示对资源的操作,使用URI来表示资源的路径,使用HTTP状态码来表示请求的结果等。这种设计风格可以使接口设计更加简洁明了。
用户2225445
2023/10/16
3810
SumGNN:基于高效知识图谱汇总的多类型药物关联预测
今天为大家介绍的是美国研究组合作发表在Bioinformatics上的一篇文章“SumGNN: multi-typed drug interaction prediction via efficientknowledge graph summarization”。在这项工作中,作者整合了DDI信息以及生物医学KG数据,并提出了有效的聚合机制以进行DDI预测。实验结果表明,该模型具有良好的预测性能。
DrugAI
2021/07/05
1.5K0
TypeScript 对象的类型-接口
在 TypeScript 中,我们使用接口(Interfaces)来定义对象的类型
Leophen
2020/07/13
3.4K0

相似问题

React警告: prop类型失败:提供的`Object`类型的prop无效

240

react prop类型验证错误

10

给React Prop一个接口

22

对象组件作为Prop React类型记录

14

React prop验证:多个有限属性类型?

04
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文