Reactjs 在我的案例中,单击“提交”后如何清除react中的输入字段?

Reactjs 在我的案例中,单击“提交”后如何清除react中的输入字段?,reactjs,components,reset,Reactjs,Components,Reset,有谁能告诉我,在我点击主页组件上的提交后,如何清除所有输入?我尝试在subjectForm组件中的preventdefault之后使用reset(),但要么使用错误,要么无效。我还尝试使用setState并将输入恢复到默认状态,默认状态为空,但也不起作用 我的代码中的一切都很好,但每次我提交一个主题时,字段本身并不清楚 这是我的主页组件 import React from 'react'; import SubjectForm from './SubjectForm';

有谁能告诉我,在我点击主页组件上的提交后,如何清除所有输入?我尝试在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);

由于您使用状态控制输入字段,因此应重置
状态字段
,它将重置字段。因此:

onSubmit=(e)=>{
    e.preventDefault();

    **//I tried using reset() here but it did not work**

    if(!this.state.subjectName){...}

    // after finishing all you want to do with it:
    this.setState({
        hour: '', // or any other initial value you have
        subjectName: '',
    });
}

由于您使用状态控制输入字段,因此应重置
状态字段
,它将重置字段。因此:

onSubmit=(e)=>{
    e.preventDefault();

    **//I tried using reset() here but it did not work**

    if(!this.state.subjectName){...}

    // after finishing all you want to do with it:
    this.setState({
        hour: '', // or any other initial value you have
        subjectName: '',
    });
}

我做到了,这是我在提交时的代码,当我尝试onSubmit=(e)=>{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})else{this.setState(()=>({错误:'}));this.props.onSubmit({subjectName:'',小时:0,分钟:0,注意:'})}请将其添加到您的帖子中,以使其更易于阅读,并显示您迄今为止所做的尝试。我这样做了,您可以看一看吗?我已相应地编辑了答案,您使用
this.setState
而不使用其他内部函数。我这样做了,这是我在提交时尝试的代码onSubmit=(e)=>{if(!this.state.subjectName){this.setState(()=>({error:'please enter subject name'}))}如果(!this.state.hour&&!this.state.minute){this.setState(()=>({error:'please enter'}))}如果(!this.state.hour&&!this.state.minute){this.setState(()=>({error:'please'})),请输入时间)),否则,{this.props.on({subjectName:'',小时:0,分钟:0,注意:'}}请将其添加到您的帖子中,以使其更易于阅读,并显示您迄今为止所做的尝试。我做到了,您可以看一看吗?我已相应地编辑了答案,您使用
this.setState
而不使用其他内部函数。
onSubmit=(e)=>{
    e.preventDefault();

    **//I tried using reset() here but it did not work**

    if(!this.state.subjectName){...}

    // after finishing all you want to do with it:
    this.setState({
        hour: '', // or any other initial value you have
        subjectName: '',
    });
}