从firebase数据库和componentDidMount获取数据

时间:2017-12-12 22:15:57

标签: reactjs firebase react-redux fetch

我在使用componentDidMount()从firebase获取数据时遇到问题。 获取数据工作正常,但问题在于生命周期方法。我console.log出了提取的数据。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
  };
 }

renderMethod

renderAddressCard(shippingAddressBook) {
    return _.map(shippingAddressBook, (value, uid) => {
      return (
        <Card header={value.companyName} />

      );
    });
  }

0 个答案:

没有答案