Reactjs 使用材质UI时,无法从全局状态(REDUX)获取更新的值

Reactjs 使用材质UI时,无法从全局状态(REDUX)获取更新的值,reactjs,redux,material-ui,Reactjs,Redux,Material Ui,当我有材料UI代码时,我无法获取isAuthenticated的更新状态。 当我有材料UI代码时,是否有任何方法可以更新状态 import React from "react"; import clsx from "clsx"; import { withStyles } from "@material-ui/core/styles"; import MUILink from "@material-ui/core/Link"; import AppBar from "../UI/componen

当我有材料UI代码时,我无法获取isAuthenticated的更新状态。 当我有材料UI代码时,是否有任何方法可以更新状态

import React from "react";
import clsx from "clsx";
import { withStyles } from "@material-ui/core/styles";
import MUILink from "@material-ui/core/Link";
import AppBar from "../UI/components/AppBar";
import Toolbar, { styles as toolbarStyles } from "../UI/components/Toolbar";
import { Link } from "react-router-dom";
import { connect } from 'react-redux';

const styles = theme => ({
  title: {
    fontSize: 24
  },
  placeholder: toolbarStyles(theme).root,
  toolbar: {
    justifyContent: "space-between"
  },
  left: {
    flex: 1
  },
  leftLinkActive: {
    color: theme.palette.common.white
  },
  right: {
    flex: 1,
    display: "flex",
    justifyContent: "flex-end"
  },
  rightLink: {
    fontSize: 16,
    color: theme.palette.common.white,
    marginLeft: theme.spacing(3)
  },
  linkSecondary: {
    color: theme.palette.secondary.main
  }
});

const Navbar = (props,{isAuthenticated,loading}) => {
  const { classes } = props;

  const authLinks = (
    <div className={classes.right}>
      <MUILink
        variant="h6"
        underline="none"
        component={Link} to="/log-out"
        className={clsx(classes.rightLink, classes.linkSecondary)}
      >
        {"Log out"}
      </MUILink>
    </div>
  );


  const guestLinks = (
    <div className={classes.right}>
      <MUILink
        color="inherit"
        variant="h6"
        underline="none"
        component={Link} to="/sign-in"
        className={classes.rightLink}
      >
        {"Sign In"}
      </MUILink>
      <MUILink
        variant="h6"
        underline="none"
        component={Link} to="/sign-up"
        className={clsx(classes.rightLink, classes.linkSecondary)}
      >
        {"Sign Up"}
      </MUILink>
    </div>
  );

  return (
    <div>
      <AppBar position="fixed">
        <Toolbar className={classes.toolbar}>
          <div className={classes.left} />
          <MUILink
            variant="h6"
            underline="none"
            color="inherit"
            className={classes.title}
            component={Link} to="/"
          >
            {"buzzer"}
          </MUILink>
          {!loading && (
              <React.Fragment>{isAuthenticated ? authLinks : guestLinks}</React.Fragment>
          )}
        </Toolbar>
      </AppBar>
      <div className={classes.placeholder} />
    </div>
  );
};

const mapStateToProps = state =>({
  isAuthenticated:state.auth.isAuthenticated,
  loading:state.auth.loading
})

export default connect(mapStateToProps)((withStyles(styles)(Navbar)));
从“React”导入React;
从“clsx”导入clsx;
从“@material ui/core/styles”导入{withStyles}”;
从“@material ui/core/Link”导入MUILink;
从“./UI/components/AppBar”导入AppBar;
从“./UI/components/Toolbar”导入工具栏,{styles as toolbarStyles};
从“react router dom”导入{Link};
从'react redux'导入{connect};
常量样式=主题=>({
标题:{
字体大小:24
},
占位符:工具栏样式(主题).root,
工具栏:{
为内容辩护:“之间的空间”
},
左:{
弹性:1
},
leftLinkActive:{
颜色:theme.palette.common.white
},
对:{
弹性:1,
显示:“flex”,
辩护内容:“柔性端”
},
rightLink:{
尺寸:16,
颜色:theme.palette.common.white,
marginLeft:主题。间距(3)
},
linkSecondary:{
颜色:theme.palete.secondary.main
}
});
常量导航栏=(道具,{isAuthenticated,loading})=>{
常量{classes}=props;
常量authLinks=(
{“注销”}
);
const guestLinks=(
{“登录”}
{“注册”}
);
返回(
{“蜂鸣器”}
{!正在加载&&(
{isAuthenticated?authLinks:guestLinks}
)}
);
};
常量mapStateToProps=状态=>({
isAuthenticated:state.auth.isAuthenticated,
加载:state.auth.loading
})
导出默认连接(mapStateToProps)((带样式(样式)(导航栏));

我希望导航栏根据已验证的条件进行更改。如果用户经过身份验证,我只想显示authLink,如果用户没有经过身份验证,我想显示guestLink。

{isAuthenticated,loading}
将被注入
道具中,而不是作为第二个参数:

const Navbar = (props) => {
  const { classes, isAuthenticated,loading } = props;

你是救命恩人。非常感谢。