【发布时间】:2020-06-04 05:19:13
【问题描述】:
我试图仅在有人登录时显示 signedInLinks。但是,我似乎无法这样做,因为从未加载过 firebase 身份验证,因此不会显示任何链接。我怎样才能获得身份验证加载?我的代码不正确吗? 我在这上面花了好几个小时。任何帮助将不胜感激。
import { Link } from 'react-router-dom';
import SignedInLinks from './SignedInLinks';
import SignedOutLinks from './SignedOutLinks';
import { connect } from 'react-redux';
import { NavLink } from 'react-router-dom';
import "materialize-css/dist/css/materialize.min.css"
import M from 'materialize-css/dist/js/materialize.min.js';
import { isLoaded } from 'react-redux-firebase'
export class Navbar extends React.Component {
constructor(props) {
super(props);
this.state = {
authIsLoaded : isLoaded(props.auth),
links : props.auth.uid ? <SignedInLinks /> : <SignedOutLinks />
};
}
componentDidMount() {
const M=window.M;
document.addEventListener('DOMContentLoaded', function() {
var elems = document.querySelectorAll('.sidenav');
var instances = M.Sidenav.init(elems, {});
});
}
render () {
console.log(this.authIsLoaded)
return (
<div>
<nav className="nav-wrapper blue darken-4">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"></link>
<div class='container'>
<a href="/" className='brand-logo'>DSHS</a>
<a href="/" className="sidenav-trigger" data-target="mobile-links">
<i className="material-icons">menu</i>
</a>
<ul className="right hide-on-med-and-down">
<SignedInLinks />
</ul>
</div>
</nav>
<ul className="sidenav" id="mobile-links">
{this.state.authIsLoaded && this.state.links}
</ul>
</div>
);
}
}
const mapStateToProps = (state) => {
return {
auth: state.firebase.auth
}
}
export default connect(mapStateToProps)(Navbar);```
【问题讨论】:
-
您的问题,尤其是它的标题没有相关性,在搜索实际问题时不会帮助任何人。
标签: javascript firebase materialize google-signin react-props