【发布时间】:2018-08-06 12:38:13
【问题描述】:
我正在探索使用 React 作为前端框架的 firebase,但遇到了以下问题:
我有以下带有生命周期钩子的父组件,它从 firebase 获取我的数据并用它填充本地状态。之后组件输出状态。
state = {
pets: null
};
componentDidMount() {
db
.onceGetPets()
.then(snapshot => this.setState(() => ({ pets: snapshot.val() })));
}
render() {
const {pets} = this.state;
return ({pets})}
我还有一个将新条目写入数据库的子组件,其外观如下:
state = {
...INITIAL_STATE
};
submitHandler = event => {
const { name, age, animal, breed } = this.state;
db.doCreatePet(
name,
age,
animal,
breed,
auth.currentUser.email.slice(0, -4)
);
this.setState({ ...INITIAL_STATE });
event.preventDefault();
};
render(){
return(<StyledNewPetForm show={this.props.show} onSubmit={this.submitHandler}/>)}
我想实现以下行为:
当用户提交表单(子组件)时,它应该触发父组件(显示数据的组件)的重新渲染,然后从 firebase 获取新数据并显示它。
【问题讨论】:
标签: javascript reactjs firebase firebase-realtime-database