Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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
与ReactJS don'的联系方式;t向firebase发送数据_Reactjs_Firebase_Google Cloud Firestore_Mdbreact - Fatal编程技术网

与ReactJS don'的联系方式;t向firebase发送数据

与ReactJS don'的联系方式;t向firebase发送数据,reactjs,firebase,google-cloud-firestore,mdbreact,Reactjs,Firebase,Google Cloud Firestore,Mdbreact,lemme解释说:“我是ReactJS的新手,当时正在用Firebase构建一个应用程序,在这个应用程序中,我面临着一个奇怪的场景。” sendtofirebase() { db.collection('contacts').add({ name:'faizam', email:'shdj', subject:'hdjshj', message:'hjhdjs', }).then(()=>{ alert

lemme解释说:“我是ReactJS的新手,当时正在用Firebase构建一个应用程序,在这个应用程序中,我面临着一个奇怪的场景。”

sendtofirebase()
{
    db.collection('contacts').add({
        name:'faizam',
        email:'shdj',
        subject:'hdjshj',
        message:'hjhdjs',
    }).then(()=>{
    alert("Data Sent");
    }).catch((error)=>{
        alert("Error is",error);
    });
    alert(" from firebase")
}
submitbtn()
{       
    console.log('Name',this.state.name);
    console.log('Email',this.state.email);
    console.log('subject',this.state.subject);
    console.log('message',this.state.message);
    this.sendtofirebase();
    alert("from submitbtn");
    
}
onSubmit={()=>this.submitbtn()}
如果a调用这样的函数,数据不会在firebase中累积,但会显示警报(“来自firebase”)。如果我像这样调用“onSubmit={this.submitbtn()}”,那么即使在触发submit按钮之前,数据也会添加到firebase中。我不明白为什么我要面对这种奇怪的行为

这是完整的联系方式代码

import React,{Component} from 'react';
从'./firebase'导入{db}; 从“mdbreact”导入{MDBContainer、MDBRow、MDBCol、MDBBtn、MDBIcon、MDBInput}; 类ContactForm扩展组件 { 建造师(道具) { 超级(道具); 这个州= { 名称:“”, 电子邮件:“”, 主题:'', 消息:“”

}
}
sendtofirebase()
{
db.collection('contacts')。添加({
姓名:'faizam',
电邮:"shdj",,
主题:'hdjshj',
消息:'hjhdjs',
}).然后(()=>{
警报(“发送的数据”);
}).catch((错误)=>{
警报(“错误为”,错误);
});
警报(“来自firebase”)
}
submitbtn()
{       
console.log('Name',this.state.Name);
console.log('Email',this.state.Email);
console.log('subject',this.state.subject);
console.log('message',this.state.message);
这是sendtofirebase();
警报(“来自submitbtn”);
}
render()
{
返回(
this.submitbtn()}>
与我联系

发送 ); } }导出默认联系人表单;
我不确定这是否是您的问题,但可能是您的函数具有错误的
此绑定

要解决此问题,您应该更改:

sendtofirebase()
{
    db.collection('contacts').add({
        name:'faizam',
        email:'shdj',
        subject:'hdjshj',
        message:'hjhdjs',
    }).then(()=>{
    alert("Data Sent");
    }).catch((error)=>{
        alert("Error is",error);
    });
    alert(" from firebase")
}
submitbtn()
{       
    console.log('Name',this.state.name);
    console.log('Email',this.state.email);
    console.log('subject',this.state.subject);
    console.log('message',this.state.message);
    this.sendtofirebase();
    alert("from submitbtn");
    
}
致:


基本上,
someFunction=()=>{}
将函数放在类的构造函数中,这应该意味着调用
this。someFunction()
肯定是指上下文中的正确绑定。

我不确定这是否是您的问题,但可能是您的函数具有错误的
此绑定

要解决此问题,您应该更改:

sendtofirebase()
{
    db.collection('contacts').add({
        name:'faizam',
        email:'shdj',
        subject:'hdjshj',
        message:'hjhdjs',
    }).then(()=>{
    alert("Data Sent");
    }).catch((error)=>{
        alert("Error is",error);
    });
    alert(" from firebase")
}
submitbtn()
{       
    console.log('Name',this.state.name);
    console.log('Email',this.state.email);
    console.log('subject',this.state.subject);
    console.log('message',this.state.message);
    this.sendtofirebase();
    alert("from submitbtn");
    
}
致:


基本上,
someFunction=()=>{}
将函数放在类的构造函数中,这应该意味着调用
this。someFunction()
肯定是指这个上下文中的右边部分。

在开发工具的网络选项卡或控制台中发生了什么?看起来很奇怪,它既不调用firebase回调中的任何警报我已经检查了“网络”选项卡,但如果我调用submitbtn()函数时没有与firebase建立此“()=>”连接,但如果我像这样调用函数“()=>this.submitbtn()”,问题是相同的firebase不显示与应用程序的任何连接。在()=>this.submitbtn的情况下,应用程序不会从firebase获得任何响应,但会在this.submitbtn()中从firebase获得响应。在开发工具的网络选项卡或控制台中是否发生任何情况?看起来很奇怪,它既不调用firebase回调中的任何警报我已经检查了“网络”选项卡,但如果我调用submitbtn()函数时没有与firebase建立此“()=>”连接,但如果我像这样调用函数“()=>this.submitbtn()”,问题是相同的firebase不显示与应用程序的任何连接。在()=>this.submitbtn()的情况下,应用程序不会从firebase获得任何响应,但会在this.submitbtn()中从firebase获得响应。不,这也不起作用,但如果我在不使用“()=>的情况下调用但它会造成函数在我单击submit按钮之前触发的问题。不,这也不起作用,但如果我在没有“()=>”的情况下调用函数,它会起作用,但它会造成函数在我单击submit按钮之前触发的问题。
sendtofirebase = () => {
    db.collection('contacts').add({
        name:'faizam',
        email:'shdj',
        subject:'hdjshj',
        message:'hjhdjs',
    }).then(()=>{
    alert("Data Sent");
    }).catch((error)=>{
        alert("Error is",error);
    });
    alert(" from firebase")
}
submitbtn = () => {        
    console.log('Name',this.state.name);
    console.log('Email',this.state.email);
    console.log('subject',this.state.subject);
    console.log('message',this.state.message);
    this.sendtofirebase();
    alert("from submitbtn");
    
}