하는과 같이 제출하는 형태로,은 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
채우기 내 대답을 업데이트하려면 :) –