我在使用componentDidMount()从firebase获取数据时遇到问题。 获取数据工作正常,但问题在于生命周期方法。我console.log出了提取的数据。
它在组件渲染时获取数据,在获取数据后,数据变得不确定,我的渲染方法出现并在0.001秒内消失。 我是否需要将道具数据存储到状态以便不会消失 谢谢你的帮助!
export const fetchUserAddressbook = () => {
const { currentUser } = auth;
return dispatch => {
database
.ref(`users/${currentUser.uid}/shippingAddress`)
.on('value', snapshot => {
dispatch({
type: FETCH_SHIPPING_ADDRESS_SUCCESS,
payload: snapshot.val()
});
});
};
};
componentDidMount() {
this.props.fetchUserAddressbook();
}
render(){
return
(
<div>{this.renderAddressCard(this.props.shippingAddressBook)}</div>
)
const mapStateToProps = state => {
return {
shippingAddressBook: state.user.shippingAddressBook
};
}
renderAddressCard(shippingAddressBook) {
return _.map(shippingAddressBook, (value, uid) => {
return (
<Card header={value.companyName} />
);
});
}