Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript e、 当i';我正在使用设置状态_Javascript_Reactjs - Fatal编程技术网

Javascript e、 当i';我正在使用设置状态

Javascript e、 当i';我正在使用设置状态,javascript,reactjs,Javascript,Reactjs,我将函数传递给的元素是处理值并填充父组件中的状态 例如:用户类型密码。我希望用户对象保持不变,但用户必须更改 I want to change my state, the user properties, when the you change the field on the form I want it to change the proper value on user. 状态={ 报名:对, 用户:{ 名称:“”, 密码:“”, 电子邮件:“”, 用户名:“” } } handleCh

我将函数传递给的元素是处理值并填充父组件中的状态

例如:用户类型密码。我希望用户对象保持不变,但用户必须更改

I want to change my state, the user properties, when the you change the field on the form I want it to change the proper value on user.
状态={
报名:对,
用户:{
名称:“”,
密码:“”,
电子邮件:“”,
用户名:“”
}
}
handleChange=e=>{
this.setState(prevState=>({
用户:{
…prevState.user,
[e.target.name]:e.target.value
}
} 
));
}
导出默认函数SignupForm({handleSignup,handleChange}){
返回(
地籍东南段

福托斯·维迪奥斯·多斯修斯

朋友们。 地籍测量 ) }

我得到一个错误:e.target为null

您应该将值保存到另一个变量,或者使用
e.persist()

这是因为在React中,出于性能原因而使用。从文档的部分:

事件
已合并。这意味着调用事件回调后,
SyntheticEvent
对象将被重用,所有属性都将为空。这是出于性能原因。因此,您不能以异步方式访问事件


您应该将该值保存到另一个变量,或者使用
e.persist()

这是因为在React中,出于性能原因而使用。从文档的部分:

事件
已合并。这意味着调用事件回调后,
SyntheticEvent
对象将被重用,所有属性都将为空。这是出于性能原因。因此,您不能以异步方式访问事件


您是否可以更新代码,以显示在哪里添加句柄更改列表?这是否回答了您的问题?您是否可以更新代码,以显示在哪里添加句柄更改列表?这是否回答了您的问题?我忘了将事件目标的名称也保存到变量中。现在试试?我忘了将事件目标的名称也保存到变量中。现在试试?
state = {
      signUp: true,
      user:{
        name: '',
        password: '',
        email: '',
        userName: ''
      }
    }

handleChange = e =>{        
    this.setState(prevState => ({
      user: {
        ...prevState.user,
       [e.target.name] : e.target.value
      }
    } 

    ));
  }



 export default function SignupForm({handleSignup, handleChange}) {
    return (
        <div>
            <div className='login-page__main__cadastro'>


            <h4>
                 Cadastre-se para ver<span className='br'><br></br></span> fotos e vídeos dos seus <span className='br'><br></br></span> amigos.
                 </h4> 

                 <form className='login-page__main__cadastro__form'>
                  <input className='form-cadastro-item' onChange={handleChange} name='email' type='email' placeholder='email'></input>
                  <input className='form-cadastro-item' onChange={handleChange} name='name' type='text' placeholder='Nome completo'></input>
                  <input className='form-cadastro-item' onChange={handleChange} name='userName' type='text' placeholder='Nome de usuário'></input>
                  <input className='form-cadastro-item' onChange={handleChange} name='password' type='password' placeholder='Senha'></input>

                 <button onClick={handleSignup} className='btn-primary'>
                 Cadastrar-se

                 </button>

                 </form>
            </div>
        </div>
    )
}
handleChange = e =>{    
    let myName = e.target.name;
    let myValue = e.target.value;    
    this.setState(prevState => ({
        user: {
            ...prevState.user,
            [myName] : myValue
        }
    })); 
}