我在学ReactJS
我想在输入字段中添加文本,然后单击“提交”按钮。这个新值将添加到表中。
我从一个简单的表单组件开始,它有名字和姓氏输入值。一个扩展表单的表组件。表单添加到默认的App类。
Form.js
import React, { Component } from 'react';
import './form.css';
export default class Form extends Component {
render(){
return(
<div id="Form">
<form onSubmit={this.handleSubmit}>
Username<br/>
<input type="text" name="username" placeholder="Username" /><br/>
Password<br/>
<input type="password" name="password" placeholder="Password"/><br/>
<br/>
<input type="submit" value="Submit" />
</form>
</div>
);
}
}
Table.js
import React, { Component } from 'react';
import './table.css';
import Form from './Form.js';
export default class Table extends Form {
render(){
return(
<div id="Table">
<table>
<tr>
<th>Username</th>
<th>Password</th>
</tr>
<tr>
<td>a</td>
<td></td>
</tr>
</table>
</div>
);
}
}
App.js
import React, { Component } from 'react';
import logo from './logo.svg';
import Table from './Table.js';
import Form from './Form.js';
import './App.css';
class App extends Component {
render() {
return (
<div className="App">
<Form />
</div>
);
}
}
export default App;
3条答案
按热度按时间brc7rcf01#
我做了一个CodePen with a working example.
您必须在您的父组件上编写方法,并将它们作为 prop 传递给您的子组件。您的应用程序的状态也将在父组件上。
您应该创建的方法是handleInputChange和handleFormSubmit。您必须将这两个方法作为属性传递给表单组件。
状态将包含新项的"用户名"和"密码",以及现有项的数组和新项将添加到的位置。您将把项的数组作为属性传递给Table组件。
在Table组件中,只需Map项目prop,并使用数组中每个项目的数据打印
<tr>
。./App.js
./Form.js
./Table.js
我建议您阅读React文档的"受控组件"部分。
对于更复杂的表单,可以使用Redux和redux-form。
我希望这会有所帮助。
j5fpnvbx2#
你可以像下面这样做。存储你的输入字段值到一个数组状态,并把它传递给你的表组件作为 prop 。在你的表组件中,取一个数组变量,迭代你的formData prop ,然后把用户名和密码推到行数组中,并打印出来。
您可以在下面查看全部功能
Form.js
Table.js
w8f9ii693#