首页 > 解决方案 > 在 kebab 情况下访问 JSON 字段(例如 some-value)

问题描述

在使用 API 时,我无法在 React Native 中访问 kebab case 中的字段(例如一些值)。

在其他请求中,以下方法有效

端点返回:

data: {
    attributes: {
        avatar-medium:"/images/medium/work-missing.png",
        company-avatar:"/images/thumb/professional-missing.png",
        company-name:"Company Name"
   }
}

访问 kebab case 字段:

const {
    'avatar-medium': avatarMedium,
    'company-avatar': companyAvatar,
    'company-name': companyName
} = this.props.data.attributes;

这行得通,但是在下面这个特定的 JSON 中,使用相同的解决方案会返回错误:

端点返回:

data: {
    relationships: professional-company-address {
        data: {…}
    }
}

访问 kebab 大小写字段(错误):

const {
    'professional-company-address': companyAddress
} = this.props.data.relationships;

错误:

TypeError:无法读取未定义的属性“专业公司地址”

什么是难以理解的,因为返回

console.log(this.props.data.relationships)

professional-company-address {
    data: {…}
}

标签: javascriptreact-native

解决方案


这是一个同步问题,因为在完成请求之前字段是空的

解决了:

if (this.props.data.length !== 0) {
    console.log(this.props.data.relationships['professional-company-address']);
}

推荐阅读