React+AntD的使用记录

React+AntD的使用记录

1、超链接的跳转禁用以及颜色的调整

 <a 
 	style={{pointerEvents:this.state.data==undefined?"none":"",
 	this.state.data==undefined?"#666666":""}} 
 	href="javascript:;"  
 	onClick={() => this.view()}>{}
 </a>

2、React子组件向父组件返回一些数据

2.1、子组件主动传递一定的数据到父组件

父组件:(这里使用了antD的模态框)

<Modal
	   title='模态框'
       visible={this.state.visible}
       onOk={this.oK}
       onCancel={this.cancel}
       okText={'确定'}
       cancelText={'取消'}
	   destroyOnClose={true}
	   maskClosable={false}
	   width={750}>
       <SubComponent setXXX={(info) => {this.state.xxx= info;}} </SubComponent >
</Modal>

子组件:

let info = {};
//...
this.props.setXXX(info);

这样就可以在父组件中使用this.state.xxx获取到子组件传递过来的消息了。

2.2、将子组件部分或者全部绑定为父组件的一个新属性

父组件:(这里使用了antD的模态框)

<Modal
	   title='模态框'
       visible={this.state.visible}
       onOk={this.oK}
       onCancel={this.cancel}
       okText={'确定'}
       cancelText={'取消'}
	   destroyOnClose={true}
	   maskClosable={false}
	   width={750}>
       <SubComponent onRef={this.onRef}> </SubComponent >
</Modal>

//onRef函数
onRef = (ref)=>{
    // 绑定子组件调用时传递的参数
	this.child = ref;
}

子组件:

    //子组件在加载完成后就把·自己·绑定到父组件中,这样子组件只需要把要
    //传递的数据,放在自身就ok,父组件可以去主动获取子组件的任何的数据。
    componentDidMount() {
        this.props.onRef(this);
    }

在父组件的child的属性下就是整个子组件。

3、确保React数据异步加载的顺序

在使用react时由于组件和ajax异步请求数据时,在需要有加载先后顺序的数据时有可能会获取不到改数据,说明此时该数据还没未返回,可以粗浅的使用以下的办法临时解决一下:

request('get', url,{params})
.then(res=>{
	//...
	//setState添加callback函数,在次函数中调用下一步该执行的js
	this.setState({},()=>{})
})
.catch(err=>{
//...
})

4、this.props.form.getFieldDecorator(id, options)

经过 getFieldDecorator包装的控件,表单控件会自动添加value(或 valuePropName 指定的其他属性)onChange(或 trigger 指定的其他属性),数据同步将被 Form接管,这会导致以下结果:

1、你不再需要也不应该用 onChange 来做同步,但还是可以继续监听 onChange 等事件。
2、你不能用控件的 valuedefaultValue 等属性来设置表单域的值,默认值可以用 getFieldDecorator 里的 initialValue
3、你不应该用 setState,可以使用this.props.form.setFieldsValue 来动态改变表单值。

原文:https://blog.csdn.net/weixin_44874595/article/details/104268036

5、在Modal中有时会缺失form属性导致无法使用getFieldDecorator

Modal的子组件中中有时会缺失form属性,导致在render函数中
const { getFieldDecorator } = this.props.form;报错。
解决办法:

class Form extends Component {
//...
}
const addForm= Form.create()(Form);
export default addForm;

可能是因为缺失const addForm= Form.create()(Form);导致的,加上即可。

这样就可以在子组件中使用const { getFieldDecorator } = this.props.form;进行表单的相关操作了。
qjx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
React Antd TS Admin 是一个基于 React 技术栈开发的后台管理系统。它结合了 React 框架、Ant Design 组件库和 TypeScript 语言的优势,旨在提供一套开箱即用的高质量的后台管理系统模板。 React 是一个用于构建用户界面的 JavaScript 库,具有组件化和虚拟 DOM 的概念,能够高效地渲染页面。Ant Design 是一套优秀的 React UI 组件库,它提供了一系列美观、易用的组件,方便开发者快速构建出符合设计规范的界面。而 TypeScript 是 JavaScript 的超集,它添加了静态类型检查和更好的面向对象编程能力,有助于提升代码的质量和可维护性。 React Antd TS Admin 提供了常见的后台管理系统功能模块,例如用户管理、角色管理、权限管理、日志记录等。它采用了前后端分离的架构,通过 RESTful API 与后端进行交互,并提供了统一的数据流管理方案,可方便地处理异步数据请求和状态管理。 该后台管理系统还具有良好的扩展性和定制性。开发者可以根据实际需求自定义主题样式、添加新的功能模块,或者集成其他第三方插件和工具。同时,React Antd TS Admin 也提供了详细的文档和示例代码,以及一套完备的开发工具链,方便开发者快速上手和开发。 总之,React Antd TS Admin 是一个功能丰富、易于使用和扩展的后台管理系统模板,适用于各种规模的企业和项目,帮助开发者快速搭建出高质量的后台管理系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q J X

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值