UNPKG

@alifd/field

Version:

Fields can be used to manage data when it comes to form data manipulation and validation. After being associated with a component, the form data can be automatically written back, read, and verified.

111 lines (92 loc) 3.09 kB
--- title: 组合使用 - mix usage order: 8 --- 多组件混合使用 --- multi type of component ````jsx import ReactDOM from 'react-dom'; import React from 'react'; import { Button, Checkbox, Input, Radio, Select, Range, DatePicker, TimePicker } from '@alifd/next'; import Field from '@alifd/field'; const CheckboxGroup = Checkbox.Group; const RadioGroup = Radio.Group; const list = [ { value: 'apple', label: 'apple' }, { value: 'pear', label: 'pear' }, { value: 'orange', label: 'orange' } ]; const layout = { marginBottom: 10, width: 400 }; class App extends React.Component { field = new Field(this); render() { const {init, getValue} = this.field; return (<div className="demo"> <div style={{marginBottom: 10}}> <RadioGroup {...init('radiogroup', {initValue: 'a'})} > <Radio value="a">A</Radio> <Radio value="b">B</Radio> <Radio value="c">C</Radio> <Radio value="d">D</Radio> </RadioGroup> </div> { getValue('radiogroup') !== 'd' ? <Select {...init('name', {initValue: 'lucy'})} style={layout}> <Select.Option value="jack">jack</Select.Option> <Select.Option value="lucy">lucy</Select.Option> <Select.Option value="disabled" disabled>disabled</Select.Option> <Select.Option value="hugohua">hugohua</Select.Option> </Select> : <Input {...init('name', {initValue: 'frankqian'})} /> } <br/> <Range style={{...layout, marginTop: 30}} slider={'double'} scales={10} marks={10} {...init('range', {initValue: [20, 40]})}/> <div style={{marginBottom: 10}}> <CheckboxGroup dataSource={list} {...init('checkboxgroup', {initValue: ['apple']})} /> </div> <div style={{marginBottom: 10}}> <DatePicker {...init('datepicker')}/> </div> <div style={{marginBottom: 10}}> <DatePicker.RangePicker {...init('rangepicker')}/> </div> <div style={{marginBottom: 10}}> <TimePicker {...init('timepicker')}/> </div> <Button type="primary" onClick={() => { console.log(this.field.getValues()); }}>getValues</Button> <Button onClick={() => { this.field.setValues({ name: 'hugohua', range: [30, 50], checkboxgroup: ['orange'], radiogroup: 'd' }); }}>setValues</Button> <Button onClick={() => { this.field.reset(); }}>reset</Button> </div>); } } ReactDOM.render(<App/>, mountNode); ```` ````css .demo .next-btn { margin-right: 5px; } ````