美文网首页
antDesign+react 实现选择不同的下拉框出现不同的组

antDesign+react 实现选择不同的下拉框出现不同的组

作者: kim_jin | 来源:发表于2019-01-11 17:29 被阅读0次

在选择不同的下拉框的时候出现不同的组件,具体的实现效果就是:

初始状态 选择每天运行时的效果 选择每周运行时的效果 选择每月运行时的效果

我具体的做法是,在第一个下拉框作为一个控制组件,后面的显示结果通过判断第一个下拉框选择的不同值进行显示的划分。
首先先对第一个组件进行封装,,该文件的文件名的index.js:

import React,{PureComponent} from 'react';
import {Select} from 'antd';
import SwitchInterval  from '/SwitchInterval '
const Option = Select.Option ;

class FirstSelect extends PureComponent {
  state = {value:''};

  //   向子组件传值
  handleChange = value =>{
    this.setState(()=>({value}));
  }
  render(){
    const {value} =this.state;
    return(
      <div>
        <Select value ={value} onChange ={this.handleChange}>
          <Option value =''>请选择</Option >
          <Option value ='day'>每天运行</Option >
          <Option value ='week'>每周运行</Option >
          <Option value ='month'>每月运行</Option >
        </Select}>
        <SwitchInterval />
      </div>)
  }
}

现在我们对子组件进行封装,子组件的文件名为SwitchInterval.js :

import React,{PureComponent} from 'react';
import {Select} from 'antd';
import SwitchInterval  from '/SwitchInterval '
const Option = Select.Option ;

// 对日期组件进行封装
class DayShow extends PureComponent{
  InitTime =() =>{
    let timeValues =[];
    for(let i = 0; i< 24; i++){
      timeValues.push(i+':00');
    }
    return timeValues;
  };

  render(){
    return(
      <div>
        <span>时间为</span>
        <Select defaultValue ='0:00'>
          {this.InitTime().map(value =>(<Option key ={value} value ={value}>{value}</Option>))}
        </Select>
      </div>
    );
  }
}

// 对星期组件进行封装
class WeekShow extends PureComponent{
  InitWeek =() =>{
    let weekValues =[
      {value:1,label:'星期一'},
      {value:2,label:'星期二'},
      {value:3,label:'星期三'},
      {value:4,label:'星期四'},
      {value:5,label:'星期五'},
      {value:6,label:'星期六'},
      {value:7,label:'星期日'},
    ];
    return weekValues ;
  };

  render(){
    return(
      <div>
        <span>日期为</span>
        <Select defaultValue ='星期一'>
          {this.InitWeek().map(({value,label}) =>(<Option key ={value} value ={value}>{label}</Option>))}
        </Select>
      </div>
    );
  }
}

// 对月份组件进行封装
class MonthShow extends PureComponent{
  InitMonth =() =>{
    let monthValues =[];
    for(let i = 1; i< 32; i++){
      timeValues.push(i);
    }
    return monthValues ;
  };

  render(){
    return(
      <div>
        <span>日期为</span>
        <Select defaultValue ='1'>
          {this.InitMonth().map(value =>(<Option key ={value} value ={value}>{value}</Option>))}
        </Select>
      </div>
    );
  }
}

class SwitchInterval  extends PureComponent{
  render(){
    if(this.props.value ==='day' ){
      return(
        <div>
          <DayShow />
        </div>
      );
    }else if(this.props.value ==='week' ){
      return(
        <div>
          <WeekShow />
          <DayShow />
        </div>
      );
    }else if(this.props.value ==='month'){
      return(
        <div>
          <DayShow />
          <MonthShow />
        </div>
      );
    }else{
      return null;
    }
  }
}
export default SwitchInterval ;

相关文章

  • antDesign+react 实现选择不同的下拉框出现不同的组

    在选择不同的下拉框的时候出现不同的组件,具体的实现效果就是: 我具体的做法是,在第一个下拉框作为一个控制组件,后面...

  • excel2019-创建下拉框-根据关键字填充整行

    需求: 1、将测试结果设置为4种,做成下拉框格式供选择 2、根据不同关键字,给对应行填充不同颜色 实现: 1、下拉...

  • Xcode中的组和文件夹

    对于新手来说,在xcode中添加一个文件有不同的选择,而不同的选择出现的文件颜色也不一致,区别在于选择的是组还是文...

  • 不同的人不同的选择

    中国有13亿多人,相遇的概率才百分之零点几,虽然我很珍惜每个人相遇的机会,但是每天碰到的人也太多,每个人的人生都不...

  • 不同的人,不同的选择,相同的选择,不同的结局

    三级皮纹分析师学完后有感而发:“用对方喜欢的方式达成自己喜欢的目的。” 二级皮纹分析师学完后一直在思考:“不同的人...

  • ConcurrentHashMap 和 Hashtable 的区

    一、出现版本的不同 出现的年代不同,在实现方式及性能上也存在较大的不同 Hashtable:JDK1.0 中出现;...

  • 不同的选择.不同的结果

    《干法》讲到想要成就某项事业,就必须成为能够自我燃烧的人.此话千真万确。书中讲到:不燃型、可燃型、自然型三种类型,...

  • 不同的选择,不同的活法

    这几天早上起来,头晕晕的,眼皮总感觉耷拉着睁不开。几天了,什么像样的文字都写不出来。焦虑倒是少了一些,不过,像这样...

  • 不同的选择,不同的生活

    你看到的是金钱,我看到的是轻松。 有三五次这样的机会,别人要用我手中的资格证书,我一律都拒绝了。难道我钱真的是太多...

  • 不同的选择不同的结局

    随着步入社会的时间慢慢变长,年龄也在逐渐增长,当然体重好像也在增长,但我发现有一样东西却好像在逆向生长一样,那...

网友评论

      本文标题:antDesign+react 实现选择不同的下拉框出现不同的组

      本文链接:https://www.haomeiwen.com/subject/hpbxdqtx.html