【发布时间】:2017-01-04 04:49:38
【问题描述】:
我目前在我的 React 应用程序中设置了一个路由器,它有一个带有查询参数的链接:
<Router history={hashHistory}>
<Route path="/" component={Home} />
<Route path="/details/:id" component={Details} />
</Router>
我想做的是在用户导航到详细信息页面(即/details/123)时查询我的firebase数据库。 Details 组件中的这段代码将是:
const id = this.props.params.id;
const rootRef = firebase.database().ref();
rootRef.orderByChild("id").equalTo(id).on("child_added", function (snapshot) {
this.setState({
user: snapshot.value()
});
});
我应该将查询 firebase 数据库的代码放在哪里?我会认为它不应该进入渲染方法,因为它不属于那里,因为我正在设置状态 - 这是正确的吗?我尝试使用 componentWillReceiveProps 生命周期函数,但似乎没有被调用 - 我是否误解了生命周期以及 react-router 的工作原理?
【问题讨论】:
标签: reactjs firebase firebase-realtime-database react-router