0
你好我做泰勒Mcginess的ReactJS基本面当然,也有像这样提交一个表单,阵营JS计划:国家
function Prompt (props) {
return (
<div>
<h3>{ props.header }</h3>
<div>
<form onSubmit={ props.onSubmitUser } >
<div>
<input
type="text"
placeholder="Github Username"
onChange={ props.onUpdateUser }
value={ props.username }
/>
</div>
<div>
<button type="submit" >
Continue
</button>
</div>
</form>
</div>
</div>
);
}
,并处理提交的功能是这样的,
handleOnSubmitUser: function (e) {
e.preventDefault();
// if back button pressed.
var username = this.state.username;
this.setState({
username: ""
})
// push state
if (this.props.routeParams.playerOne) {
this.context.router.push({
pathname: "/battle",
query: {
playerOne: this.props.routeParams.playerOne,
playerTwo: this.state.username
}
})
} else {
this.context.router.push("/playerTwo/" + this.state.username)
}
},
我的问题是,如何重置缓存用户名后的用户名状态导致用户名被传递到战斗路线?,通过当前的代码,不应将空字符串作为用户名因为它刚刚在setState中初始化了吗?
我想你忽略了文档中最重要的部分:传递一个回调的能力,在状态发生改变后将被调用。 – hvd
填写免费更新我的答案:) –