Reactjs 反应选择标记::基于另一个选择更改选择选项

Reactjs 反应选择标记::基于另一个选择更改选择选项,reactjs,Reactjs,我正在使用atlaskit选择标记,我有两个选择标记。选择第一个时,我必须从另一个选择标记获取值 我的第一个选择包含3个选项:天、周和月。 在选择任何选项时,我都会得到特定的数据,例如:如果是第1天到第31天,则必须显示数字, 如果是第1周,则必须显示1到6个数字,如果是第1个月,则必须显示12个数字 var Days=[]; for(let i=1;i<=31;i++){ Days.push({ label : i, value : i }) } var we

我正在使用atlaskit选择标记,我有两个选择标记。选择第一个时,我必须从另一个选择标记获取值

我的第一个选择包含3个选项:天、周和月。 在选择任何选项时,我都会得到特定的数据,例如:如果是第1天到第31天,则必须显示数字, 如果是第1周,则必须显示1到6个数字,如果是第1个月,则必须显示12个数字


var Days=[];
for(let i=1;i<=31;i++){
  Days.push({
    label : i,
    value : i
  })
}

var weeknumber = [];
for(let j=1;j<=7 ;j++){
  weeknumber.push({
    label :j,
    value :j
  })
}

var monthnum = [];
for(let k=1 ;k<=12 ; k++){  
  monthnum.push({
    label : k,
    value : k
  })
}
repeatoptn : [
    {value : 'Day',label:'Day'},
    {value:'Week',label:'Week'},
    {value:'Month',label:'Month'}
],
reptdata : []


  handleRepeatOn = (repeatonevery) =>{

    if(this.state.repeat == 'Day'){
      this.setState({reptdata : Days})
    }
    else if(this.state.repeat == 'Week'){
     this.setState({reptdata : weeknumber})
    }
    else {    
      this.setState({reptdata : monthnum})
    }
    this.setState({
      repeatonevery 
    })
  }
<Select
  className="single-select"
  classNamePrefix="react-select"
  options={this.state.repeatoptn}
  styles={customStyles}
  onChange = {this.handleRepeat}
  value = {this.state.repeat}
 /> 
<Select
  className="single-select"
  classNamePrefix="react-select"
  options={this.state.reptdata }
  styles={customStyles}
  onChange = {this.handleRepeatOn}
  value = {this.state.repeatonevery}
 /> 


风险值天数=[];

对于(让i=1;i请看一看我尝试组合的示例,仍然有许多地方需要改进,但我认为这可能是一个很好的代码库供您参考

此外,请参阅Select API文档以查看更多示例和道具,这可能会对您有所帮助

链接示例:

import React,{useffect,useState}来自“React”;
从“@atlaskit/Select”导入Select;
常量数据选择类型=[
{值:未定义,标签:'None'},
{值:'date',标签:'date'},
{值:'month',标签:'month'},
{值:'year',标签:'year'},
];
常数数据日期=[
{值:'1',标签:'1st'},
{值:'2',标签:'2nd'},
{值:'3',标签:'3rd'}
];
常量数据月=[
{值:'jan',标签:'janur'},
{值:'feb',标签:'二月'},
{值:'mar',标签:'March'}
];
常数数据年=[
{值:'2018',标签:'2018'},
{值:'2019',标签:'2019'},
{值:'2020',标签:'2020'},
];
常量SingleExample=()=>{
const[dataType,setType]=useState([]);
const[currentType,setCurrentType]=使用状态(未定义);
const[dataSelect2,setDataSelect2]=useState([]);
const onChangeSelect1=(值)=>{
log('onChangeSelect1 val:',value);
setCurrentType(value.value)
}
const onChangeSelect2=(值)=>{
console.log('val2:',值);
}
useffect(()=>{
console.log('type:',currentType);
如果(!currentType)
setDataSelect2([]))
如果(当前类型=='month')
setDataSelect2(数据月);
如果(当前类型=='年')
setDataSelect2(数据年);
如果(currentType=='date')
setDataSelect2(数据日期);
},[currentType]);
useEffect(()=>setType(dataSelectType),[])
返回(
)
}
导出默认单例;