笨笨吖 发表于 2023-5-12 17:32:49

React之input动态取值和赋值方式

react input动态取值和赋值

需求:对用户在form表单输入的值提取出来,并且改变setState中的数据
1.在constructor中设置初始值
2.在Input框中定义
如果只有value没有onChange事件会报错,change事件可以关联输入的值
value = {this.state.name}
onChange ={this.onChange.bind(this) }3.对onchange事件注册,然后获取Input值再对state赋值
e.target.name代表你当前输入Input框对应的Name,如email,password
e.target.value代表当前输入的值

    this.setState({
       : e.target.value
    })import React, { Component } from 'react'
class Register extends Component {
// 在构造函数当中设置状态
constructor(props){
    super(props)
    this.state ={
      name : '',
      email:'',
      password:'',
      password2:'',
      errors:{},//用户不合法信息提示
    }
}
onChange(e){
    // console.log(e.currentTarget.value)
    console.log(e.target.name)//(e.target.name代表你当前输入Input框对应的Name,如email,password
    // e.target.value 代表当前输入的值
    this.setState({
       : e.target.value
    })
}
//提交对应的内容
onSubmit(e){
    e.preventDefault()
    const newUser = {
      name : this.state.name,
      email:this.state.email,
      password:this.state.password,
      password2:this.state.password2,
    }
    console.log(newUser)
}
render() {
    return (
      <div className="register">
      {/* {user ? user.name : null} */}
      <div className="container">
          <div className="row">
            <div className="col-md-8 m-auto">
            <h1 className="display-4 text-center">注册</h1>
            <p className="lead text-center">创建新的账户</p>
            <form onSubmit={this.onSubmit.bind(this)}>
                <div className="form-group">
                  <input
                  type="text"
                  className="form-control form-control-lg"
                  placeholder="用户名"
                  name="name"
                  value = {this.state.name}
                  onChange ={this.onChange.bind(this) }
                  />
                </div>
                <div className="form-group">
                  <input
                  type="email"
                  className='form-control form-control-lg'
                  placeholder="邮箱地址"
                  name="email"
                  value = {this.state.email}
                  onChange ={this.onChange.bind(this) }
                  />
                  <small className="form-text text-muted">我们使用了gravatar全球公认头像, 如果需要有头像显示, 请使用在gravatar注册的邮箱</small>
                </div>
                <div className="form-group">
                  <input
                  type="password"
                  className='form-control form-control-lg'
                  placeholder="密码"
                  name="password"
                  value = {this.state.password}
                  onChange ={this.onChange.bind(this) }
                  />
                </div>
                <div className="form-group">
                  <input type="password"
                  className='form-control form-control-lg'
                  placeholder="确认密码"
                  name="password2"
                  value = {this.state.password2}
                  onChange ={this.onChange.bind(this) }
                     />
                </div>
                <input type="submit" className="btn btn-info btn-block mt-4" />
            </form>
            </div>
          </div>
      </div>
      </div >
    )
}
}
export default Register;
react获取input框的值

在开发中,我们比较常见的需要获取input框的值或者对input框的值判断是否为空,空的话给出提示
首先在input框添加一个onchange事件
<TextArea type="text"  rows={4} value={reason} onChange={inputChange}/>inputChange里去更新reason的值,reason是input框里的内容
function inputChange(e){
        dispatch({
            type:'buyBackManage/updateState',
            payload:{
                reason:e.target.value
            },
        });
    }给按钮一个点击事件
<Button type="primary" size={'large'} onClick={()=>rebut(reason)}>驳回</Button>rebut是去更改某个变量的值,我这里是修改rebutTip的值,由原来的none变成block
function rebut(reason){
        console.log(reason)
        if(reason.length===0)
        {
            dispatch({
                type:'buyBackManage/updateState',
                payload:{
                    rebutTip:'block'
                },
            });
        }
        console.log('123')
    }上面的reason和rebutTip一开始在models中设定了初始值
 rebutTip:'none',
 reason:''
总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

来源:https://www.jb51.net/article/284029.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: React之input动态取值和赋值方式