• 多个表单提交的优化方案


    1.问题

    import React from 'react';
    import './index.scss';
    
    
    class Login extends React.Component {
    	constructor(props) {
    		super(props);
    		this.state = {
    			username: '',
    			password: ''
    		}
    	}
    
    	//用户名发生改变
    	onUserNameChange(e) {
    		console.log(e.target.value);
    		this.setState({
    			username: e.target.value
    		})
    	}
    
    	//密码发生改变
    	onPwdChange(e) {
    		console.log(e.target.value);
    		this.setState({
    			password: e.target.value
    		})
    	}
    
    	render() {
    		return (
    			<div className="col-md-4 col-md-offset-4">
    				<div className="panel panel-default login-panel">
    					<div className="panel-heading">欢迎登录MMALL后台管理系统</div>
    					<div className="panel-body">
    						<form>
    							<div className="form-group">
    								<input type="text" className="form-control" placeholder="请输入用户名"
    											 onChange={e => this.onUserNameChange(e)}/>
    							</div>
    							<div className="form-group">
    								<input type="password" className="form-control" placeholder="请输入密码"
    											 onChange={e => this.onPwdChange(e)}/>
    							</div>
    							<button type="submit" className="btn btn-lg btn-block btn-primary">登录</button>
    						</form>
    					</div>
    				</div>
    			</div>
    
    		)
    	}
    }
    
    export default Login;
    

    2.解决:一个函数写所有的input值的提交

    import React from 'react';
    import './index.scss';
    
    
    class Login extends React.Component {
    	constructor(props) {
    		super(props);
    		this.state = {
    			username: '',
    			password: ''
    		}
    	}
    
    	//用户名发生改变
    	onInputChange(e) {
    		let inputName = e.target.name,
    			inputValue = e.target.value;
    		console.log(inputName, inputValue);
    
    		this.setState({
    			[inputName]: inputValue
    		})
    	}
    
    	render() {
    		return (
    			<div className="col-md-4 col-md-offset-4">
    				<div className="panel panel-default login-panel">
    					<div className="panel-heading">欢迎登录MMALL后台管理系统</div>
    					<div className="panel-body">
    						<form>
    							<div className="form-group">
    								<input type="text"
    											 className="form-control"
    											 placeholder="请输入用户名"
    											 name='username'
    											 onChange={e => this.onInputChange(e)}/>
    							</div>
    							<div className="form-group">
    								<input type="password"
    											 className="form-control"
    											 placeholder="请输入密码"
    											 name='password'
    											 onChange={e => this.onInputChange(e)}/>
    							</div>
    							<button type="submit" className="btn btn-lg btn-block btn-primary">登录</button>
    						</form>
    					</div>
    				</div>
    			</div>
    
    		)
    	}
    }
    
    export default Login;
    

    3.效果图

  • 相关阅读:
    十五。JAVA方法的分类
    八。java数组
    十三。第三章实例
    十二。工具类中算法的实现
    九。求JAVA最大,最小,平均值
    十四。JAVA类的认识
    十一。查找
    Listview中使用线程实现无限加载更多项目的功能
    PL/SQL Developer的常用技巧
    android异步加载图片
  • 原文地址:https://www.cnblogs.com/ipoodle/p/9696284.html
Copyright © 2020-2023  润新知