希望有人能够阐明我最近遇到的问题。我正在尝试为某人创建一个登陆页面来编辑一些个人资料信息(用户名、电子邮件等)。问题是当我将 Prop 从一个函数传递到另一个函数时,它们加载为未定义。相关代码如下...
class ChangeFields extends React.Component {
constructor(props) {
super(props);
this.state = {
user: [
{
username: "test"
}
]
}
}
render() {
const formSample = (
<div>
<h3>Account Information:</h3>
<br></br>
<CurrentInfo user={this.state.user} onItemSelect={this.updateInfo()} />
</div>
);
return formSample;
}
}
const CurrentInfo = ({user, onItemSelect}) => {
console.log(user.username);
const formElement = (
<Form horizontal>
<FormGroup controlId="formHorizontalUsername">
<Col componentClass={ControlLabel} sm={2}>
{user.username}
</Col>
<Col sm={10} value={user.username}>
<FormControl controlId="testControl" value={user.username} />
</Col>
</FormGroup>
</Form>
);
return formElement;
};
不幸的是,CurrentInfo block 中的“user.username”输出为未定义。有什么见解吗?注意:这是代码的简化版本,如果需要更多代码,我可以提供。
还值得注意的是,我收到一条警告:未捕获错误:_registerComponent(...):目标容器不是 DOM 元素。
我尝试将 index.html 中的行移至底部,正如其他人所建议的那样,但这并不能解决问题。
最佳答案
Unfortunately, the "user.username" in the CurrentInfo block outputs as undefined. Any insight?
这个:
this.state = {
user: [
{
username: "test"
}
]
}
应该是:
this.state = {user: {username: "test"}};
您当前正在将 user
属性设置为数组。
It is also worth noting, that I receive a warning of: Uncaught Error: _registerComponent(...): Target container is not a DOM element.
这可能发生在您问题之外的代码中。
关于javascript - 在 ReactJS 中传递 props 并且它们不会加载,同时收到目标容器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40559068/