Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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 Onchange处理程序未响应此.setState({userName:event.target.value})用户名:未定义,密码:未定义_Javascript_Reactjs_React Native - Fatal编程技术网

Javascript Onchange处理程序未响应此.setState({userName:event.target.value})用户名:未定义,密码:未定义

Javascript Onchange处理程序未响应此.setState({userName:event.target.value})用户名:未定义,密码:未定义,javascript,reactjs,react-native,Javascript,Reactjs,React Native,按下登录按钮后,警报应显示为用户名:“输入值”和密码:“输入值”。但现在显示用户名:未定义,密码:未定义。 如何解决此问题。 导出默认类登录扩展组件{ 状态={用户名:,密码:} setUName=(事件)=>{ this.setState({userName:event.target.value}) } setPW=(事件)=>{ this.setState({密码:event.target.value}) } onSubmit=(事件)=>{ event.preventDefault() c

按下登录按钮后,警报应显示为用户名:“输入值”和密码:“输入值”。但现在显示用户名:未定义,密码:未定义。 如何解决此问题。

导出默认类登录扩展组件{
状态={用户名:,密码:}
setUName=(事件)=>{
this.setState({userName:event.target.value})
}
setPW=(事件)=>{
this.setState({密码:event.target.value})
}
onSubmit=(事件)=>{
event.preventDefault()
const{userName,password}=this.state;
警报(`Username:${Username},Password:${Password}`);
}
render(){
返回(
欢迎

在react native中,您可以从TextInput组件的onChangeText属性中获取值

试试这个

      setUName=(value)=>{
        this.setState({userName:value})
    }


<TextInput style={styles.txtInput}
                            placeholder='Username'
                            returnKeyType='next'
                            onChangeText={this.setUName}
      />
setUName=(值)=>{
this.setState({userName:value})
}

无需在OnChange上传递函数,将OnChange属性替换为

  <TextInput style={styles.txtInput}
   placeholder='Username'
   returnKeyType='next'
   onChangeText={userName=> this.setState({ userName})}
   />
this.setState({userName})}
/>

似乎您正在使用TextInput,这可能是自定义创建的,也可能是从某个样式库创建的。您应该记录一次参数并检查值的确切位置,因此请尝试下面的代码并在控制台中进行检查,您将知道下一步要做什么

setUName=()=>{
    console.log(arguments)
}

控制台.log(arguments)
中始终是最佳的调试实践,就像在某些库中一样,这些事件是customEvents,值位于第二个或第三个参数中。

可以,谢谢。如果此答案对您有用,请向上投票我的答案:)现在它工作正常。谢谢您的指导
setUName=()=>{
    console.log(arguments)
}