[英]how to display user info after clicked submit in react js
This is my code.这是我的代码。 Am new for Reactjs, am trying to create form and display user info.
我是 Reactjs 的新手,正在尝试创建表单并显示用户信息。 I want to display the user details below the form after clicked the submit form
单击提交表单后,我想在表单下方显示用户详细信息
import React, {Component} from 'react';
class Input extends Component {
state = {
firstName: ''
}
displayNameHandler = (e) => {
let updatedName = e.target.value;
this.setState({firstName: updatedName});
//console.log(updatedName);
}
render() {
return(
<div>
<form>
<label>Enter the Name</label>
<input type="text" name="firstName" onChange={this.displayNameHandler}/>
<button type="button" onSubmit={e => this.displayNameHandler(e)}>Submit</button>
<p>"FirstName: " {this.state.firstName}</p>
</form>
</div>
);
}
}
export default Input;
Add onClick
on button and change type its to submit
.添加
onClick
按钮并将其类型更改为submit
。 Use conditional rendering to show name on submit:使用条件渲染在提交时显示名称:
import React, { Component } from 'react';
class Input extends Component {
state = {
firstName: '',
showName: false
}
displayNameHandler = (e) => {
let updatedName = e.target.value;
this.setState({ firstName: updatedName });
//console.log(updatedName);
}
handleSubmit = (e) => {
e.preventDefault();
this.setState({
showName: true
});
}
render() {
return (
<div>
<form onSubmit={this.handleSubmit}>
<label>Enter the Name</label>
<input type="text" name="firstName" onChange={this.displayNameHandler} value={this.state.firstName} />
<button type="submit" onClick={this.handleSubmit}>Submit</button>
{this.state.showName && <p>"FirstName: " {this.state.firstName}</p>}
</form>
</div>
);
}
}
export default Input;
if you want to use the button you should make another state to keep the submitted data and a state to keep changes in input field如果您想使用该按钮,您应该创建另一个状态以保留提交的数据和一个状态以保留输入字段中的更改
import React, { Component } from "react";
class Input extends Component {
constructor(props) {
super(props);
this.state = {
firstName: "",
submitedFirstName: ""
};
}
inputChange = e => {
const firstName = e.target.value;
this.setState(() => ({ firstName }));
};
displayNameHandler = () => {
this.setState(prevState => ({ submitedFirstName: prevState.firstName }));
};
render() {
return (
<div>
<form>
<label>Enter the Name</label>
<input type="text" name="firstName" onChange={this.inputChange} />
<button type="button" onClick={this.displayNameHandler}>
Submit
</button>
<p>
"FirstName: "
{this.state.submitedFirstName && this.state.submitedFirstName}
</p>
</form>
</div>
);
}
}
export default Input;
if you want to have on submit simply remove onClick from button cause it has a default type of submit and put an onSubmit in form component and also you sould prevent forms default behavior.如果你想在提交时简单地从按钮中删除 onClick ,因为它有一个默认类型的提交并在表单组件中放置一个 onSubmit 并且你应该防止表单默认行为。
displayNameHandler = e => {
e.preventDefault();
this.setState(prevState => ({ submitedFirstName: prevState.firstName }));
};
and和
<form onSubmit={this.displayNameHandler}>
<label>Enter the Name</label>
<input type="text" name="firstName" onChange={this.inputChange} />
<button>Submit</button>
<p>
"FirstName: " {this.state.submitedFirstName && this.state.submitedFirstName}
</p>
</form>
but you can also show data in input change但您也可以在输入更改中显示数据
import React, { Component } from "react";
class Input extends Component {
constructor(props) {
super(props);
this.state = {
firstName: ""
};
}
inputChange = e => {
const firstName = e.target.value;
this.setState(() => ({ firstName }));
};
render() {
return (
<div>
<form>
<label>Enter the Name</label>
<input type="text" name="firstName" onChange={this.inputChange} />
<p>
"FirstName: "
{this.state.FirstName && this.state.FirstName}
</p>
</form>
</div>
);
}
}
export default Input;
also pay attention to the constructor.还要注意构造函数。
波纹管形式你应该把这样的东西
{this.state.firstName !=="" && <p>{this.state.firstName}</p>}
import React, { Component } from 'react';
class Input extends Component {
state = {
firstName: '',
}
displayNameHandler = (e) => {
let updatedName = e.target.value;
this.setState({ firstName: updatedName });
//console.log(updatedName);
}
handleSubmit = () => {
alert("The Name you Entered is" , this.state.firstName);
}
render() {
return (
<div>
<form onSubmit={this.handleSubmit}>
<label>Enter the Name</label>
<input type="text" name="firstName" onChange={this.displayNameHandler} value={this.state.firstName} />
<button type="submit" onClick={this.handleSubmit}>Submit</button>
</form>
</div>
);
}
}
export default Input;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.