0
사람은 내 홈페이지의 구성 요소에 제출을 클릭하면 모든 입력을 취소하는 방법을 말해 주실 래요? SubjectForm 구성 요소에서 preventdefault 다음에 reset()을 사용했지만, 잘못 사용했거나 작동하지 않았습니다. 또한 setState를 사용하여 입력 내용을 비어있는 기본 상태로 되 돌리려고했지만 작동하지 않았습니다. 내 코드에서사례에서 제출을 클릭 한 후 입력 필드를 반제 할 수 있습니까?
모든 것이 잘 작동하지만 내가 주제를 제출할 때마다, 필드는 자체
이 내 홈페이지의 구성 요소를 삭제하지 않습니다.
import React from 'react';
import SubjectForm from './SubjectForm';
import {addSubject} from '../actions/subjectAction';
import {connect} from 'react-redux';
const HomePage=({dispatch})=>(
<div>
<SubjectForm onSubmit ={(subject)=>
dispatch(addSubject(subject))
}/>
</div>
)
export default connect()(HomePage);
이 내 subjectForm 구성 요소입니다
import React from 'react';
export default class SubjectForm extends React.Component{
constructor(props){
super(props);
this.state={...}
onNameChange =(e)=>{...}
onHourChange =(e)=>{...}
onSubmit=(e)=>{
e.preventDefault();
**//I tried using reset() here but it did not work**
if(!this.state.subjectName){...}
render(){
return (
<div>
{this.state.error && <p>{this.state.error}</p>}
<form className='test' onSubmit={this.onSubmit}>
<input
type="text"
placeholder='enter name'
autoFocus
value={this.state.subjectName}
onChange={this.onNameChange}
/>
<input
type="number"
placeholder='enter hour'
value={this.state.hour}
onChange={this.onHourChange}
/>
<button>Add Subject</button>
</form>
</div>
)
}
}
나는 빈에 따라 반환하려고 할 때이 내 onSubmit 기능입니다. 당신이 입력 필드를 제어 할 상태를 사용하고 있기 때문에
onSubmit=(e)=>{
e.preventDefault();
if(!this.state.subjectName){
this.setState(()=>({error:'please enter subject name'}))
}
else if(!this.state.hour && !this.state.minute){
this.setState(()=>({error:'please enter time'}))
}else {
this.setState(()=>({error:''}));
this.props.onSubmit({
subjectName:this.state.subjectName,
hour:this.state.hour,
minute:this.state.minute,
note:this.state.note
}, console.log(this.state),
)
this.setState(()=>({
subjectName:'',
hour:0,
minute:0,
note:'',
error:''
}));
}
}
내가 시도 할 때이 내 코드 제출에있는 것을 행한 onSubmit = (E) => { 경우 { this.setState (() = > ({오류 : '제목 이름을 입력하십시오'}) (! this.state.hour && this.state.minute) { this.setState (() : '제발 다른 } => ({오류가있는 경우) 시간 '})) 한다} else { this.setState (() => ({오류'입력 '})); this.props.onSubmit ({ 한 제목 : '', 시간 : 0, 분 : 0, 참고 : '' } ) } } – Nhat
는에 더 쉽게하는 게시물에 추가하세요 읽고 지금까지 시도한 것을 보여주십시오. – cowCrazy
내가 그랬어, 제발 좀 봐 주시겠습니까? 내가 따라 대답을 편집 한 – Nhat