首页 > 代码库 > 项目实战之FORM、复选框组件的实现
项目实战之FORM、复选框组件的实现
一、使用描述
对于复选框组件来说,主要的问题在于,勾选后返回的值要处理为数字,传递给接口,接口返回的值也是数字,但是在前台做回显时在table中数据格式需要转义为文字或者在form中数据格式需要回显在复选框中。
二、功能代码
1,转为数字1为勾选,0为未勾选
constructor(props) { super(props); this.state = { checkStatus: 0 } } //选中是true值转为1,否则就是0 handleIsChecked = (e) => { this.setState({ checkStatus: e.target.checked ? 1: 0 }) }
<FormItem {...tailFormItemLayout} style={{marginBottom: 8}}> {getFieldDecorator(‘isHash‘, { valuePropName: ‘checked‘ })( <Checkbox onChange={self.handleIsChecked.bind(this)}>是否hash存储</Checkbox> )} </FormItem>
最终传值时使用checkStatus
2.在table中回显
const columns = [{ title: ‘ID‘, dataIndex: ‘id‘, key: ‘id‘, }, { title: ‘key值‘, dataIndex: ‘cacheKey‘, key: ‘cacheKey‘, }, { title: ‘key值含义描述‘, dataIndex: ‘keyDesc‘, key: ‘keyDesc‘, }, { title: ‘所属redis集群‘, dataIndex: ‘belongCluster‘, key: ‘belongCluster‘, }, { title: ‘是否hash存储‘, dataIndex: ‘isHash‘, key: ‘isHash‘, render: (text, record) => ( record.isHash == 1 ? ‘是‘:‘否‘ ), }, { title: ‘创建时间‘, dataIndex: ‘created‘, key: ‘created‘, render: (text, record) => ( moment(text).format(‘YYYY-MM-DD‘) ), }, { title: ‘修改时间‘, dataIndex: ‘modified‘, key: ‘modified‘, render: (text, record) => ( moment(text).format(‘YYYY-MM-DD‘) ), }, { title: ‘操作‘, key: ‘action‘, render: (text, record) => ( <span> <a href="javascript:return false;" onClick={self.onClickUpdate.bind(this, record)}>修改</a> <span className="ant-divider"/> <a href="javascript:return false;" onClick={self.onClickDelete.bind(this, record.id)}>删除</a> </span> ), }];
在定义table的列时,可以添加render()方法,render: (text, record) => (record.isHash == 1 ? ‘是‘:‘否‘),就可以实现对应文字的回显。
3.在form中回显
比如点击修改某一条记录,则需要将复选框是否勾选的状态会显出来。说到这点不得不佩服ant,封装得真是太好了。只要添加一个属性就可以实现。如下:
<FormItem {...tailFormItemLayout} style={{marginBottom: 8}}> {getFieldDecorator(‘isHash‘, { valuePropName: ‘checked‘ })( <Checkbox onChange={self.handleIsChecked.bind(this)}>是否hash存储</Checkbox> )} </FormItem>
valuePropName:‘checked‘就可以搞定。
项目实战之FORM、复选框组件的实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。