【问题标题】:Material UI Icons not visible on hosting my MERN stack project on Heroku在 Heroku 上托管我的 MERN 堆栈项目时,材质 UI 图标不可见
【发布时间】:2021-08-10 16:31:52
【问题描述】:

我正在开发一个 MERN 堆栈项目,为此我创建了一个侧边栏并为图标使用了 Material UI。侧边栏在本地工作得很好,但是当我打开 heroku 链接时,图标不可见。 (请参阅下面的图片以更好地理解)

注意:我使用了仪表板上的图标,这些图标只有在您登录后才能看到

本地运行时的图像: Locally

托管在 Heroku 上时的图像: On Heroku

我的侧边栏代码:

import React, {useContext} from "react"
import "./Sidebar.css"
import { NavLink, Link } from "react-router-dom";
import MenuIcon from '@material-ui/icons/Menu';
import HomeIcon from '@material-ui/icons/Home';
import EqualizerIcon from '@material-ui/icons/Equalizer';
import SearchIcon from '@material-ui/icons/Search';
import PersonIcon from '@material-ui/icons/Person';
import { Icon } from 'semantic-ui-react'

import { UserContext } from '../pages/AuthContext';


class Sidebar extends React.Component {
  constructor(props){
    super(props);
    this.state = {
      isSidebarOpen: false,
      username: props.username,
      userId: props.userId,
      sidebarClass: "sidenav",
    };
    this.onClickSidebarOpen = this.onClickSidebarOpen.bind(this)
  }
  onClickSidebarOpen(){
    this.setState(prevState => {
      if(!prevState.isSidebarOpen)
        {
          return {
            isSidebarOpen: true,
            sidebarClass: "sidenavOpen",
          }
        }
        else if(prevState.isSidebarOpen)
          {
            return {
              isSidebarOpen: false,
              sidebarClass: "sidenav",
            }
          }
    })
  }
  render(){
    return (
      <div className={this.state.sidebarClass} >
        <ul>
          <span onClick={this.onClickSidebarOpen} className="hamburger">
            <li className="hamburger"><a>
              <span className="icons">
                <MenuIcon />
              </span>
              </a>
            </li>
          </span>

          <span>
            <li className="sidenav-item">
              <NavLink to="/dashboard">
                <span className="icons">
                  <HomeIcon />
                </span>
                <span className="options">SkillBoard</span>
              </NavLink>
            </li>
            <li className="sidenav-item">
              <Link to = "/overall-analytics">
                <span className="icons">
                  <EqualizerIcon /> 
                </span>
                <span className="options">Analytics</span>
              </Link>
            </li>

            <li className="sidenav-item">
              <NavLink to="/Review-more">
                <span className="icons">
                  <SearchIcon />
                </span>
                <span className="options">ReviewMore</span>
              </NavLink>
            </li>
            <li className="sidenav-item">
              <NavLink to={`/profile/${this.state.username}`}>
                <span className="icons">
                  <PersonIcon />
                </span>
                <span className="options">Profile</span>
              </NavLink>
            </li>
            <li className="sidenav-item">
              <NavLink to = {`/portfolio/${this.state.userId}`} target ="_blank" >
                <span className="icons">
                  <Icon name='address book' />
                </span>
                <span className="options">Portfolio</span>
              </NavLink>
            </li>
          </span>
        </ul>
      </div>
    )
  }
}

function SidebarFunc() {
  const [user, setUser] = useContext(UserContext);
  return (
    <Sidebar username = {user.username} userId = {user.id} />
  );

}


export default SidebarFunc;

我的 Package.json 用于前端:

{


"name": "skillly",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@amcharts/amcharts4": "^4.10.18",
    "@ckeditor/ckeditor5-alignment": "^28.0.0",
    "@ckeditor/ckeditor5-basic-styles": "^28.0.0",
    "@ckeditor/ckeditor5-block-quote": "^28.0.0",
    "@ckeditor/ckeditor5-build-balloon": "^28.0.0",
    "@ckeditor/ckeditor5-ckfinder": "^28.0.0",
    "@ckeditor/ckeditor5-essentials": "^28.0.0",
    "@ckeditor/ckeditor5-react": "^3.0.2",
    "@material-ui/core": "^4.11.0",
    "@material-ui/icons": "^4.11.2",
    "@material-ui/lab": "^4.0.0-alpha.58",
    "@testing-library/jest-dom": "^5.11.5",
    "@testing-library/react": "^11.1.0",
    "@testing-library/user-event": "^12.1.10",
    "apexcharts": "^3.25.0",
    "autosize": "^4.0.2",
    "axios": "^0.21.1",
    "bootstrap": "^4.5.3",
    "flesch": "^1.0.5",
    "flesch-kincaid": "github:daveross/flesch-kincaid",
    "font-awesome": "^4.7.0",
    "gasp": "0.0.2",
    "gsap": "^3.6.0",
    "html-react-parser": "^1.2.6",
    "loadash": "^1.0.0",
    "moment": "^2.29.1",
    "node-sass": "^5.0.0",
    "react": "^17.0.1",
    "react-apexcharts": "^1.3.7",
    "react-bootstrap": "^1.4.0",
    "react-dom": "^17.0.1",
    "react-facebook-login": "^4.1.1",
    "react-google-login": "^5.2.2",
    "react-gsap": "^2.2.1",
    "react-hook-reading-time": "^1.0.0",
    "react-html-parser": "^2.0.2",
    "react-icons": "^4.2.0",
    "react-moment": "^1.1.1",
    "react-router-dom": "^5.2.0",
    "react-scripts": "4.0.0",
    "react-textarea-autosize": "^8.3.0",
    "semantic-ui-css": "^2.4.1",
    "semantic-ui-react": "^2.0.3",
    "syllables": "^1.0.0",
    "web-vitals": "^0.2.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "proxy": "http://localhost:5000/"
}

我的应用程序登录 Heroku:

2021-08-09T14:59:26.562853+00:00 app[web.1]: hello
2021-08-09T14:59:26.567157+00:00 app[web.1]: hello
2021-08-09T14:59:26.567425+00:00 app[web.1]: hello
2021-08-09T14:59:26.567864+00:00 app[web.1]: hello
2021-08-09T14:59:26.568073+00:00 app[web.1]: hello
2021-08-09T14:59:26.568463+00:00 app[web.1]: hello
2021-08-09T14:59:26.568890+00:00 app[web.1]: hello
2021-08-09T14:59:26.569304+00:00 app[web.1]: hello
2021-08-09T14:59:26.570934+00:00 app[web.1]: hello
2021-08-09T14:59:26.600456+00:00 heroku[router]: at=info method=GET path="/api/overallAnalytics/60ba74fe58bb8d6268e11971" host=skillly1.herokuapp.com request_id=d0f82226-eecf-4bdd-b408-66ae6cff8d81 fwd="117.97.166.236" dyno=web.1 connect=0ms service=1664ms status=304 bytes=184 protocol=https

我的项目存储库(托管在 heroku 上) Github Repo

我的heroku网站链接:Link to website

我是 MERN 堆栈和 Heroku 的新手,这就是为什么我很难弄清楚我到底做错了什么。请帮忙!!

我不确定究竟是什么导致了这样的错误,所以如果你想让我在问题中添加任何其他内容,请告诉我。

【问题讨论】:

  • 在托管页面上检查您的 DOM,您的图标是否存在于 DOM 结构中?页面代码检查器中还有一些错误?另外,console.log sideBarClass 在 onClickSidebarOpen 里面检查是否是变量的问题。
  • @IlliaChil 是的,我确实检查了 DOM。图标在那里。他们的 HTML 出现了,并且占用了一些高度和宽度。然而由于某种原因,它们不可见

标签: javascript reactjs heroku material-ui mern


【解决方案1】:

原来我在这些图标的 CSS 中使用了opacity: 75%,由于某种原因,这使得这些图标在 DOM 上的不透明度为 1%。我从 CSS 中完全删除了它,现在它工作得很好。

【讨论】:

    猜你喜欢
    • 2022-08-14
    • 2021-11-15
    • 2021-02-24
    • 2021-03-03
    • 1970-01-01
    • 2019-02-18
    • 2020-01-19
    • 2021-03-05
    • 1970-01-01
    相关资源
    最近更新 更多