- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
console.log(profile);
效果很好,它显示了这一点。
但是当我使用 console.log(profile.company);
获取公司名称。
它向我展示了 Cannot read property 'company' of null
错误信息。
如何解决这个错误?任何帮助都受到高度赞赏。
这是代码
import React,{Fragment,useEffect}from 'react'
import PropTypes from 'prop-types'
import Loading from "../layout/Loading.js"
import {connect} from "react-redux"
import {getProfileById} from "../../redux/profile/profileAction.js"
import { Link } from 'react-router-dom'
import ProfileTop from "./ProfileTop.js"
import ProfileAbout from "./ProfileAbout.js"
import ProfileExperience from "./ProfileExperience.js"
import ProfileEducation from "./ProfileEducation.js"
import ProfileGithub from "./ProfileGithub.js"
const Profile = ({getProfileById,match,profileData,loginData}) => {
const {loading,profile}=profileData
console.log(profile); //works
console.log(profile.company); //error occurred
useEffect(()=>{
getProfileById(match.params.userId)
},[getProfileById,match.params.userId])
return (
<div style={{marginTop:"100px"}}>
{
profile ===null||loading? (<Loading/>):
(<Fragment>
<Link to="/profiles" className="btn btn-light"> Back to profiles</Link>
{
(loginData.isAuthenticated && loginData.loading===false&&loginData.user_data.userid===match.params.userId) ?
(<Link to="/edit-profile" className="btn btn-dark">Edit profile</Link>):null
}
<div className="profile-grid my-1">
<ProfileTop profile={profile}></ProfileTop>
<ProfileAbout profile={profile}></ProfileAbout>
<ProfileExperience profile={profile}></ProfileExperience>
<ProfileEducation profile={profile}></ProfileEducation>
<ProfileGithub profile={profile}></ProfileGithub>
{
profile.github_user_name===""? null:<ProfileGithub profile={profile}></ProfileGithub>
}
</div>
</Fragment>)
}
</div>
)
}
Profile.propTypes = {
profileData:PropTypes.object.isRequired,
}
const mapStateToProps=(state)=>{
return{
profileData:state.profileData,
loginData:state.loginData
}
}
export default connect(mapStateToProps,{getProfileById})(Profile)
最佳答案
无法读取空错误消息的属性“公司”
很明显,“公司”对象为空(可能用于初始渲染)
并且您收到错误是因为您正在访问 null 对象上的属性。
在 TypeScript 的情况下,您可以使用,
简介?。公司 .
它被称为可选链
https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#optional-chaining
但是在普通的JS中,我们必须使用 如果 声明并检查空情况。
对于上面的示例,您的模板完全取决于配置文件。
因此,最初本身会检查配置文件的值,如果该值未定义/为空,则返回一个空模板。
if(!profile){
return null;
}
return <Your template>
关于reactjs - 无法读取 null 的属性 'company',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64074025/
我有以下完整查询,但它什么也没返回。 @companies.where("(companies.status = 'active' AND (companies.status_override = '
我知道 Android 中包名称的标准约定是 com.companyname.project ....等等我想知道对于总部设在以色列的公司来说,使用 il.co 是否有意义,特别是因为我有一个使用 .
我将公司放在引号之间,因为我的问题与我们的橄榄球队页面有关,但在 Facebook 中,它的作用就像公司页面。 我目前正在重建我的团队网站 ( BBRFC Celtic ),并且我将添加一个用户登录系
我们升级(从 MongoDB 3.4)到: MongoDB:4.2.8 Mongoose :5.9.10 现在我们收到了这些错误。对于最小的例子,模型是: [company.js] 'use stri
我有一个基础实体类MyCompany.Core.Model.User,该类将用于User实体的常用属性: public class User { public string Username
我已将静态(无 servlet、jsp 等)网站加载到 Tomcat 的 webapps 文件夹中。 我在 webapps/ourcompany 下有一个 index.html 文件,所以当我在 to
我正在从头设计一个网络驱动的 SQL 数据库应用程序。该应用程序将为同类行业的客户管理信息。换句话说,关于每个客户的信息(实体和它们之间的关系)在一个到另一个客户之间没有太大差异。但是,信息量取决于公
我有以下类(class): @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "Party", propOrder = { "comp
(我将首先解释我的问题。下表(任何示例查询)可在 http://sqlfiddle.com/#!2/8ec17/4 获得) 我有一张股票信息表,如下: sp100_id _date
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 6年前关闭。 Improve t
我决定将自己的 Prelude 用于更大的项目(包含一些库和一些可执行文件)。 Prelude 不导出一些部分函数,而是导出一些常用函数(即来自 Control.Monad 等)。然而,我正在与如
我正在使用 Joomla 的 JSN Uniform 插件来接收电子邮件,但它不接受 .company 域作为有效域。它接受常用域(com、net、org、info、biz 等),但不接受 .comp
我正在尝试让这个 API 正常工作,但遇到了这个我不知道如何解决的错误。我在标题上收到错误。我使用了来自谷歌浏览器的 postman 扩展。并尝试执行发布请求在 localhost:3000/comp
我在测试 Django RestFramework 时遇到问题。我有以下测试: def test_update_coupon(self): response = self.make_c
console.log(profile); 效果很好,它显示了这一点。 但是当我使用 console.log(profile.company);获取公司名称。 它向我展示了 Cannot read p
这似乎是一个微不足道的问题。我需要知道,如果我在值(value) 99 美元的 iOS 开发者计划:公司 下注册我的公司,我现在可以在同一家公司下添加开发者。 我的问题是,这些开发者是否还需要分别拥有
我无法再在 Android 上启动我的应用程序。 iOS 版本似乎没问题。完整的错误是: ADB0000: Could not determin the installation path for p
我为大型 Java/Maven 项目安装了新的 Emacs(在 Windows 上)。 已安装 Eclipse 和 eclim(带 java 层的 spacemacs 更新到最新版本,company-
我正在阅读基于最新版本的 iOS 的 VPN On Demand 功能。 这里的问题是:我们运行 VPN 来访问内部托管在子域上的 WebApp,例如 salexxx.company.net ,该子域
我开发了一个 Java 数据库应用程序,该应用程序已通过 Web 服务器部署给用户。现在,一切都很好,但我们要求一些外部客户也希望访问该软件。有什么方法可以让该应用程序为这些客户工作吗?该应用程序已放
我是一名优秀的程序员,十分优秀!