最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

antd下拉框联动使用步骤详解

来源:动视网 责编:小采 时间:2020-11-27 19:46:24
文档

antd下拉框联动使用步骤详解

antd下拉框联动使用步骤详解:这次给大家带来antd下拉框联动使用步骤详解,antd下拉框联动使用的注意事项有哪些,下面就是实战案例,一起来看一下。先说一下效果要求,上面一个下拉框,下面一个,要求上面选中的时候,下面的内容要跟着变。因为想到react是数据驱动的,就不打算再用jq的
推荐度:
导读antd下拉框联动使用步骤详解:这次给大家带来antd下拉框联动使用步骤详解,antd下拉框联动使用的注意事项有哪些,下面就是实战案例,一起来看一下。先说一下效果要求,上面一个下拉框,下面一个,要求上面选中的时候,下面的内容要跟着变。因为想到react是数据驱动的,就不打算再用jq的
 这次给大家带来antd下拉框联动使用步骤详解,antd下拉框联动使用的注意事项有哪些,下面就是实战案例,一起来看一下。

先说一下效果要求,上面一个下拉框,下面一个,要求上面选中的时候,下面的内容要跟着变。


因为想到react是数据驱动的,就不打算再用jq的那种隐藏显示了,而是通过在执行类型下拉框的onChange事件中,去改变下面的下拉框的数据,渲染出不同的下拉选择。
定义数据:modeOptions是各个下拉框的值,由于选中号码的时候是输入框,这里号码的options为空。

 constructor(props) {
 super(props)
 this.modeOptions = {
 'channelMode': {options: ['通道1', '通道2', '通道3', '通道4'], text: '通道'},
 'batchMode': {options: [1, 2, 3, 4, 5], text: '批次'},
 'numberMode': {options: [], text: '号码'},
 'areaMode': {options: ['福州市', '厦门市'], text: '区域'}
 }
 this.state = {
 selectMode: 'channelMode'
 }
 this.selectMode = this.selectMode.bind(this)
 }

然后在下拉框的选中事件中去设置seletMode的值,发现antd的下拉框只要直接定义onChange事件,回调函数的第一个参数就是selectMode的值。

 selectMode(value) {
 this.setState({
 selectMode: value
 })
 }

然后在render里面进行一下数据处理

 let modelLabel = this.modeOptions[this.state.selectMode].text;
 let modelOptions = null;
 if(this.modeOptions[this.state.selectMode].options.length !== 0) {
 modelOptions = [];
 this.modeOptions[this.state.selectMode].options.map((item, index) => {
 modelOptions.push(<option key={index}>{item}</option>);
 })
 }

贴下代码:其实就是当选中的不是号码时,在第二个下拉框组件用上面的modelLabel和modelOptions来渲染下拉框,如果选择的是号码,就渲染一个输入框。

class DemandForm extends React.Component {
 constructor(props) {
 super(props)
 this.modeOptions = {
 'channelMode': {options: ['通道1', '通道2', '通道3', '通道4'], text: '通道'},
 'batchMode': {options: [1, 2, 3, 4, 5], text: '批次'},
 'numberMode': {options: [], text: '号码'},
 'areaMode': {options: ['福州市', '厦门市'], text: '区域'}
 }
 this.state = {
 selectMode: 'channelMode'
 }
 this.selectMode = this.selectMode.bind(this)
 }
 handleSubmit = (e) => {
 e.preventDefault();
 this.props.form.validateFieldsAndScroll((err, values) => {
 if (!err) {
 console.log('Received values of form: ', values);
 }
 });
 }
 selectMode(value) {
 this.setState({
 selectMode: value
 })
 }
 render() {
 const { getFieldDecorator } = this.props.form;
 const formItemLayout = {
 labelCol: {
 xs: { span: 24 },
 sm: { span: 6 },
 },
 wrapperCol: {
 xs: { span: 24 },
 sm: { span: 18 },
 },
 };
 let modelLabel = this.modeOptions[this.state.selectMode].text;
 let modelOptions = null;
 if(this.modeOptions[this.state.selectMode].options.length !== 0) {
 modelOptions = [];
 this.modeOptions[this.state.selectMode].options.map((item, index) => {
 modelOptions.push(<option key={index}>{item}</option>);
 })
 }
 return (
 <Form className="blackForm" onSubmit={this.handleSubmit}>
 <FormItem
 {...formItemLayout}
 label="定点执行类型:"
 hasFeedback
 >
 {getFieldDecorator('selectMode', {
 rules: [
 { required: true, message: 'Please select your country!' },
 ],
 })(
 <Select onChange={this.selectMode} placeholder="Please select a country">
 <Option value="channelMode">按通道</Option>
 <Option value="numberMode">按号码</Option>
 <Option value="areaMode">按区域</Option>
 <Option value="batchMode">按批次</Option>
 </Select>
 )}
 </FormItem>
 <FormItem
 {...formItemLayout}
 label={modelLabel}
 hasFeedback
 >
 {getFieldDecorator('mode', {
 rules: [
 { required: true, message: 'Please select your country!' },
 ],
 })(
 this.state.selectMode !== 'numberMode' ? <Select placeholder="Please select a country">{modelOptions}</Select> : <Input placeholder="请输入电话号码" />
 )}
 </FormItem>
 </Form>
 );
 }
}
const WrappedDemandForm = Form.create()(DemandForm);

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

前端,HTT,计算机与网络

webkit-font-smoothing字体抗锯齿渲染使用案例详解

文档

antd下拉框联动使用步骤详解

antd下拉框联动使用步骤详解:这次给大家带来antd下拉框联动使用步骤详解,antd下拉框联动使用的注意事项有哪些,下面就是实战案例,一起来看一下。先说一下效果要求,上面一个下拉框,下面一个,要求上面选中的时候,下面的内容要跟着变。因为想到react是数据驱动的,就不打算再用jq的
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top