Reactjs 使用onSubmit设置多个输入的状态?

Reactjs 使用onSubmit设置多个输入的状态?,reactjs,Reactjs,我想从表单中的这两个输入获取数据,并将其中一个设置为state.name,另一个设置为state.option。有没有一种方法可以在使用表单提交按钮而不是使用单个onChange处理程序来设置这些状态时设置它们?如果不是的话,如果有一个submit按钮实际上什么都不做,那就很尴尬了 onTextChange(name) { this.setState({ name }); console.log(this.state.name

我想从表单中的这两个输入获取数据,并将其中一个设置为state.name,另一个设置为state.option。有没有一种方法可以在使用表单提交按钮而不是使用单个onChange处理程序来设置这些状态时设置它们?如果不是的话,如果有一个submit按钮实际上什么都不做,那就很尴尬了

   onTextChange(name) {
                this.setState({ name });
                console.log(this.state.name);
            }
            onOptionChange(option) {
                this.setState({ realm });
                console.log(this.state.option);
            }
            onSubmitForm(event) {
                event.preventDefault();
            }

            render() {
            return (
                <div>
                    <h3>Enter Name:</h3>
                        <form onSubmit={event => this.onSubmitForm(event.target.value)}>
                            <input 
                            type="text" 
                            placeholder="Name"
                            value={this.state.name}
                            onChange={event => this.onTextChange(event.target.value)}
                            />
                   Select Option:
                        <select onChange = {event => this.onOptionChange(event.target.value)}>
                                <option value="1">Option 1</option>
                                <option value="2">Option 2</option>
                        </select>
                        <input type="submit" />
</form>

在React中,您必须在状态中控制表单/输入中发生的事情,并设置状态以更改它。这是我的电话


欢迎回复:

然后放下提交按钮。简而言之,你不应该这样做。很长的一个问题是,如果有一种方法可以从提交事件中获取输入值,那么它将非常麻烦和脆弱,并且您必须分离该事件,如果您更新react并更改其内部表示形式,这可能会破坏您的应用程序。我的建议是采用简单的解决方案并使用onChange处理程序,这可以保证您的状态是一致的和可预测的,这是reactGood-know这样的框架的主要优点。因此,我将使用输入作为父函数中API请求的参数。这样会不会太草率?或者在两个输入都被选中之前,它是否可以进行一些错误处理,比如加载条。我不确定你的意思。通常,您要做的是使用onSubmit处理程序发送请求,并从状态中存储的数据中获取所需的参数。在那里,您可以在发送请求之前检查错误。您也可以这样做。在触发请求之前,设置状态{loading:true},并相应地呈现加载程序。单个onChange处理程序让您有机会验证每个输入,因为它是change。我明白您的意思。因此,在onSubmit函数中,我将在使用这些子组件状态块作为参数的父组件中运行我的函数。