Reactjs 反应选择标记::基于另一个选择更改选择选项
我正在使用atlaskit选择标记,我有两个选择标记。选择第一个时,我必须从另一个选择标记获取值 我的第一个选择包含3个选项:天、周和月。 在选择任何选项时,我都会得到特定的数据,例如:如果是第1天到第31天,则必须显示数字, 如果是第1周,则必须显示1到6个数字,如果是第1个月,则必须显示12个数字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
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),[])
返回(
)
}
导出默认单例;