【发布时间】:2019-06-05 14:14:51
【问题描述】:
作为 React.js 的初学者,我在下面有一个 for 循环,它循环遍历状态中的所有表单元素,并相应地输出 JSX 组件以进行渲染。目前我的表单中只有 2 个元素。如果我通过this.state.form.username.placeHolder 直接访问它们,我就可以访问该值。但是,当我使用 for 循环并为每个“组件”使用时,component.placeHolder 是undefined。
如果有人能告诉我我做错了什么,我将不胜感激。
尝试将控制台日志放在各处。看来它只是不喜欢component.placeHolder 的语法。
import React, {Component} from 'react';
import classes from './SignInUpForm.module.css';
import Input from './Input/Input';
import Icon from '../../Assets/Icons/icon1.svg';
class SignInUpForm extends Component{
state={
form:{
username:
{placeHolder: "Username",
type: "text",
icon: {Icon},
validation:{
required: true,
},
valid: false},
password:
{placeHolder: "Password",
type: "text",
icon: {Icon},
validation:{
required: true,
},
valid: false}
}
}
render(){
const formArray = [];
for (let component in this.state.form){
console.log(this.state.form);
console.log(component);
console.log(component.placeholder);
console.log(component.icon);
formArray.push(
<Input key = {component} name = {component} placeholder={component.placeHolder} icon ={component.icon}/>
);
}
return(
<React.Fragment>
<div className={classes.SignInUpForm}>
{formArray}
</div>
</React.Fragment>
);
}
}
export default SignInUpForm;
placeholder={component.placeHolder} icon ={component.icon} are undefined. They should not be.
【问题讨论】:
标签: javascript reactjs for-loop state