我试图在组件文件中显示年份选择框,我尝试了简单的for循环,但是它的语法错误,这是我的代码>
render(){
return (
<div>
<select value={this.state.exp_year} name="exp_year" className="form-control" onChange={this.handleInputChange} >
<option value="">===Select Expiry Year===</option>
{ for(var i=2017; i<=2050; i++){
<option value={i}>{i}</option>
}
}
</select>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
请让我知道我在做什么错。
基本上,您无法在JSX中执行直接循环,因为这有点像要求一个函数参数。但是,您可以做的是在其中放置IIFE,该IIFE返回一系列选项,例如:
render() {
return (
<div>
<select
value={this.state.exp_year}
name="exp_year"
className="form-control"
onChange="this.handleInputChange">
<option value="">===Select Expiry Year===</option>
{(() => {
const options = [];
for (let i = 2017; i <= 2050; i++) {
options.push(<option value={i}>{i}</option>);
}
return options;
})()}
</select>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
但这确实看起来很凌乱,所以您可能应该在返回之前将循环移到外面:
render() {
const options = [];
for (let i = 2017; i <= 2050; i++) {
options.push(<option value={i}>{i}</option>);
}
return (
<div>
<select
value={this.state.exp_year}
name="exp_year"
className="form-control"
onChange="this.handleInputChange">
<option value="">===Select Expiry Year===</option>
{options}
</select>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
Build the options into an array first, then use the array in the JSX code.
class YearComponent {
render() {
const options = [];
for (var i = 2017; i <= 2050; i++) {
options.push(<option value={i} key={i}>{i}</option>);
}
return (
<div>
<select
value={this.state.exp_year}
name="exp_year"
className="form-control"
onChange={this.handleInputChange}
>
<option value="">===Select Expiry Year===</option>
{options}
</select>
</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5428 次 |
| 最近记录: |