在我的 react.js 应用程序中,我有以下对话框:
<Dialog open={this.state.dialogIsOpen} onClose = {this.closeDialog} >
<DialogTitle id="simple-dialog-title">Create New Test User</DialogTitle>
<DialogContent>
<Grid container>
<Grid item xs = "6">
<label htmlFor = "id">Id: </label>
</Grid>
<Grid item xs = "6">
<input id = "id" value = {this.state.id}></input>
</Grid>
<Grid item xs = "6">
<label htmlFor = "name">Name: </label>
</Grid>
<Grid item xs = "6">
<input id = "name" value = {this.state.name}></input>
</Grid>
<Grid item xs = "6">
<label htmlFor = "email">Email:</label>
</Grid>
<Grid item xs = "6">
<input id = "email" value = {this.state.email}></input>
</Grid>
</Grid>
<button onClick = {this.createUser}>OK</button>
</DialogContent>
</Dialog>
底部按钮调用如下函数:
createUser()
{
alert(this.state.email);
alert(this.state.users.length);
var newUser = {
id: this.state.id,
name: this.state.name,
emailAddress: this.state.email
}
this.state.users.push(newUser);
this.closeDialog();
}
调用createUser函数时,this.state.email、name、id都是未定义的。但是, this.state.users 是我期望的数组。输入似乎没有正确绑定到状态值。我需要做些什么来绑定对话框中的输入?
答案 0 :(得分:1)
除了使用 .then((resp) => {
if (!resp.ok) return; // or do something else
page_data = resp.json();
callback();
})
试试这个:
setState
而不是调用 this.setState({
users: [...users, newUser]
})
答案 1 :(得分:1)