简体   繁体   English

在react js中单击提交后如何显示用户信息

[英]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.

相关问题 点击提交后,React js中没有提交输入 - After the submit is clicked, the input is not submitted in React js 在反应中单击提交按钮时如何在同一页面上显示状态 - How to display the state on the same page when clicked Submit button in react 单击提交后如何显示通知警告弹出窗口? - How to display notification alert popup after clicked on submit? 如何显示确认提示,显示当用户在文本字段中输入信息并单击js中的“提交”时输入的内容 - How to display an acknowledgement prompt showing what has been entered when user inputs info into text fields and clicks submit in js 如何使用JS SDK登录后获取用户信息 - How to get User info using JS SDK after they login with Facebook 提交成功或失败后如何在反应表单中显示 toastr 警报? - How to display a toastr alert in a react form after submit succeed or failed? 在 React js 中单击项目后如何显示组件? - How can I show a component after item clicked in react js? 用户提交表单后如何显示成功消息 - How can I display a success message after the user submit the form 如何在ember js中的form.submit()之后显示加载屏幕 - How to display a loading screen after form.submit() in ember js 如何在 Laravel 中提交当前用户的信息? - How to submit info for Current User in Laravel?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM