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
Node.js 我怎样才能显示一个;“电子邮件id已存在”;React.js中的消息?_Node.js_Reactjs - Fatal编程技术网

Node.js 我怎样才能显示一个;“电子邮件id已存在”;React.js中的消息?

Node.js 我怎样才能显示一个;“电子邮件id已存在”;React.js中的消息?,node.js,reactjs,Node.js,Reactjs,如何使用React.js显示“电子邮件id已存在”消息 我已检查后端中的“电子邮件id已存在”条件。但我不明白如何在文本框附近显示该消息 我已尝试在警报中显示该消息 这是登记表: var RegistrationForm = React.createClass({ //get initial state enent getInitialState : function(){ return { strF

如何使用React.js显示“电子邮件id已存在”消息

我已检查后端中的“电子邮件id已存在”条件。但我不明白如何在文本框附近显示该消息

我已尝试在警报中显示该消息

这是登记表:

    var RegistrationForm = React.createClass({
        //get initial state enent
        getInitialState : function(){
            return {
                strFullName : '',
                strEmail:'',
                strPassword : '',
                Fields : [],
                intPhoneNumber:''
            }
        },
        // submit function
        handleSubmit : function(e){
            e.preventDefault();
            //Validate entire form here
            var validForm = true;
            this.state.Fields.forEach(function(field){
                if (typeof field.isValid === "function") {
                    var validField = field.isValid(field.refs[field.props.name]);
                    console.log("validField "+validField);
                    validForm = validForm && validField;
                }
            });
            console.log("form"+validForm);
            //after validation complete post to server 
            if (validForm) {
                alert("ok");
             //pass data to server   
            axios.post("/register",
              {
                  full_name :this.state.strFullName,
                  email:this.state.strEmail,
                  password:this.state.strPassword,
                  phone_number:this.state.intPhoneNumber,

              }).then(function (response) {
                var data=response.data;
                alert("Email already exist");
              });
            }

             this.setState({
                 strFullName:'',
                 strEmail:'',
                 intPhoneNumber:'',
                 strPassword:''
              })

        },
render : function(){
        //Render form 
        return(
<MyInput type={'email'} 
                value={this.state.strEmail} 
                label={'Email'} 
                name={'Email'} 
                htmlFor={'Email'} 
                isrequired={true}
                onChange={this.onChangeEmail} 
                onComponentMounted={this.register} 
                strMessageRequired={'Please Enter Email.'}
                strMessageEmail={'Please Enter Correct Email'}  />
);
    }
});
module.exports=RegistrationForm;
这将呈现父组件,然后呈现MyInput组件。 然后,您需要将其作为道具传递给子组件

<MyInput type={'email'} 
                value={this.state.strEmail} 
                label={'Email'} 
                name={'Email'} 
                htmlFor={'Email'} 
                isrequired={true}
                onChange={this.onChangeEmail} 
                onComponentMounted={this.register} 
                strMessageRequired={'Please Enter Email.'}
                strMessageEmail={'Please Enter Correct Email'}  
                error={this.state.error || null} //new addition
/>

这将使用另一个属性,即“错误”呈现MyInput

现在,在MyInput的render方法中,您可以如下处理:

if(!this.props.error){
   return (<div className="message">{this.props.error}</div>
}
if(!this.props.error){
返回({this.props.error}
}
或者如果您想显示介于两者之间的内容,请使用react条件渲染。

编辑以显示错误 在输入框上方或下方添加此行

{this.props.error > 0 &&
        <h2>
          {this.props.error} 
        </h2>
      }
   
{this.props.error>0&&
{this.props.error}
}
这将呈现父组件,然后呈现MyInput组件。 然后,您需要将其作为道具传递给子组件

<MyInput type={'email'} 
                value={this.state.strEmail} 
                label={'Email'} 
                name={'Email'} 
                htmlFor={'Email'} 
                isrequired={true}
                onChange={this.onChangeEmail} 
                onComponentMounted={this.register} 
                strMessageRequired={'Please Enter Email.'}
                strMessageEmail={'Please Enter Correct Email'}  
                error={this.state.error || null} //new addition
/>

这将使用另一个属性,即“错误”呈现MyInput

现在,在MyInput的render方法中,您可以如下处理:

if(!this.props.error){
   return (<div className="message">{this.props.error}</div>
}
if(!this.props.error){
返回({this.props.error}
}
或者如果您想显示介于两者之间的内容,请使用react条件渲染。

编辑以显示错误 在输入框上方或下方添加此行

{this.props.error > 0 &&
        <h2>
          {this.props.error} 
        </h2>
      }
   
{this.props.error>0&&
{this.props.error}
}

您可以编辑问题并发布完整的MyInput组件吗?您可以从后端获取响应并打印它,因为从后端获得响应是显而易见的。我从后端获得响应。请参阅此axios.post(“/register”,{full_name:this.state.strFullName,email:this.state.strEmail,密码:this.state.strPassword,电话号码:this.state.intPhoneNumber,})您好,我已经提高了您问题的可读性,并使标题更加具体。您可以编辑问题并发布完整的MyInput组件吗?您可以从后端获取响应并打印出来,因为从后端获得响应是显而易见的。我从后端获得响应。请参阅此axios.post(“/register”{full_name:this.state.strFullName,email:this.state.strEmail,密码:this.state.strPassword,电话号码:this.state.intPhoneNumber,})}您好,我已经提高了您问题的可读性,并使标题更具体一些。谢谢您的帮助。您的回答在技术上是正确的,先生。我尝试了这个。但它不起作用。如果-->if(!this.props.error){return({this.props.error}这只是一个示例用例。它需要放在渲染函数中。其余,只有当我需要显示此错误的确切方式时,我才能指导您。它不显示错误消息。我希望当用户输入emai id时,如果存在相同的eamil-id,则在电子邮件id的文本框附近显示错误刚刚编辑了答案,您可以显示e错误。有关详细信息,请参阅此链接。简言之,如果存在this.props.error,则您没有其他错误。感谢您的帮助。您的回答在技术上是正确的,先生。我尝试了此选项。但它不起作用。将此-->if(!this.props.error){返回({this.props.error}放在何处这只是一个示例用例。它需要放在渲染函数中。其余,只有当我需要显示此错误的确切方式时,我才能指导您。它不显示错误消息。我希望当用户输入emai id时,如果存在相同的eamil-id,则在电子邮件id的文本框附近显示错误刚刚编辑了答案,您可以显示e错误。有关更多详细信息,请参阅此链接。简言之,如果存在this.props.error,则存在错误,否则不存在错误。