、そのように提出するフォーム、は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>
);
}
、Submitを扱うための機能があり、この、
です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
私の答えを更新するために記入してください:) –