【发布时间】:2017-04-25 19:14:13
【问题描述】:
我有一个提交的表单组件,然后想在提交后将数据传递给函数,但我收到一条空白警报消息。
代码如下:
import React, { Component } from 'react';
class SubmitForm extends Component {
constructor() {
super();
this.state = {title: ''};
this.handleSubmit = this.handleSubmit.bind(this);
}
handleSubmit(event) {
this.getdata(this.state.title, this.state.firstname, this.state.lastname);
event.preventDefault();
}
getdata(title) {
alert(title);
alert(firstname);
alert(lastname);
}
render() {
return (
<div>
<form onSubmit={this.handleSubmit.bind(this)}>
<label htmlFor="title">Title</label>
<input type="text" id="title" />
<label htmlFor="firstname">Firstname</label>
<input type="text" id="firstname" />
<label htmlFor="lastname">Lastname</label>
<textarea id="lastname" rows="3"></textarea>
<input type="submit" value="Submit" />
</form>
</div>
);
}
}
export default SubmitForm;
我该如何解决这个问题以便获取数据?
【问题讨论】:
-
你没有在
getdata中传递足够的参数 -
几厘米。一,您不需要在
<form>元素上使用this.handleSubmit.bind(this)。您已经在构造函数中绑定了this的正确上下文。所以只需onSubmit={this.handleSubmit}就可以了。 -
正如@DanielLizik 所说,您的
getdata函数的参数仅列出1 但是,您正在尝试使用3。您需要添加到参数列表或删除对firstname的调用和lastname在那个函数中。 -
您只在状态中存储
title。您需要添加firstname和lastname。 -
你应该将 props 传递给你的
super函数。类似constructor(props) { super(props); .......... }
标签: javascript reactjs