Javascript 父组件未将Firebase道具传递给子组件
我有一个父组件,我在其中初始化了一个Firebase实例,我需要在子组件中提交一个表单,在子组件中它接受初始化的Firebase道具并将数据提交到cloud firestore。我的问题是,每当我试图在子组件中提交表单详细信息时,就会出现错误无法读取未定义的属性“firebase” 请参阅下面我初始化Firebase道具并将道具传递给子组件的代码:Javascript 父组件未将Firebase道具传递给子组件,javascript,reactjs,firebase,firebase-realtime-database,google-cloud-firestore,Javascript,Reactjs,Firebase,Firebase Realtime Database,Google Cloud Firestore,我有一个父组件,我在其中初始化了一个Firebase实例,我需要在子组件中提交一个表单,在子组件中它接受初始化的Firebase道具并将数据提交到cloud firestore。我的问题是,每当我试图在子组件中提交表单详细信息时,就会出现错误无法读取未定义的属性“firebase” 请参阅下面我初始化Firebase道具并将道具传递给子组件的代码: import { withFirebase } from "../../utils/Firebase"; const SignUpDetail =
import { withFirebase } from "../../utils/Firebase";
const SignUpDetail = (props) => {
const renderSwitch = (id) => {
switch (id) {
case "subscribe":
return <Subscribe {...props} />;
case "finish":
return <FinishSetup {...props} />;
default:
return null;
}
};
}
export default withRouter(withFirebase(SignUpDetail));
然后在我的子组件中,这是我接收道具的地方
const Subscribe = ({ props }) => {
const handleUpdate = (event) => {
event.preventDefault();
props.firebase
.doCreateUserWithEmailAndPassword(
formState.values.email,
formState.values.password
)
.then((authUser) => {
// Create a user in your Firebase realtime database
})
.catch((error) => {
console.log("error: " + error);
});
};
}
如果我从父母那里打任何frebase电话,它就工作了,但是如果我从孩子那里打任何电话,它就不工作了,我得到了这个错误。
如果我能得到帮助,我将不胜感激。我创建了一个Firebase上下文,在这里我启动了Firebase的一个实例,每当我在子组件中需要该实例时,我都会引用它,并且我能够毫无问题地使用它。在这种情况下,我不需要将Firebase实例作为道具传递。我创建了一个Firebase上下文,在该上下文中我启动了Firebase的一个实例,每当我需要子组件中的该实例时,我都会引用它,并且我能够毫无问题地使用它。在这种情况下,我不需要将Firebase实例作为道具传递。您确定正确传递了道具吗 通过
console.log(道具)
在子组件中?您确定正确传递道具吗 通过
console.log(道具)
在子组件中?您可以添加一个您如何从父组件拨打电话的示例吗?@AsifM我已经更新了我的问题。我使用一种方法调用firebase实例,在该实例中我将保存保存到firebase。您能否添加一个示例,说明您是如何从父级调用的?@AsifM我已更新了我的问题。我使用一种方法调用firebase实例,在该实例中我将保存保存到firebase。我已更改了整个流程,因此我不再使用这些代码来记录道具。我已经用新流程解决了这个问题。但是,如果你能帮助我,我这里有一个新问题。我已经改变了整个流程,所以我不再有那些代码来记录道具。我已经用新流程解决了这个问题。然而,如果你能帮助我,我有一个新问题。
const Subscribe = ({ props }) => {
const handleUpdate = (event) => {
event.preventDefault();
props.firebase
.doCreateUserWithEmailAndPassword(
formState.values.email,
formState.values.password
)
.then((authUser) => {
// Create a user in your Firebase realtime database
})
.catch((error) => {
console.log("error: " + error);
});
};
}