0

我有一个 JSON 有效负载,其中包含连字符的键名,使用时我似乎无法访问this.props

我知道在 JS 中你无法访问: data: {name-last: dave}使用.符号 iedata.name-last不会工作,但data['name-last']可以工作。

我遇到的问题是,在反应和使用时this.props.data['name-last']总是返回未定义。

理想情况下,id 不需要更改有效负载(因为 id 必须即时修改它)无论如何要在道具中使用连字符的键名?

这是一个示例数据结构;

{
    generatedTime: "2017-12-08T15:04:16.876Z",
    audits: {
        first-meaningful-paint: {
            score: 85,
            displayValue: "2,370 ms",
            rawValue: 2369.9,
            optimalValue: "< 1,600 ms",
            extendedInfo: {
                value: {}
            },
            scoringMode: "numeric",
            name: "first-meaningful-paint",
            category: "Performance",
            description: "First meaningful paint",
            helpText: "First meaningful paint measures when the primary content of a page is visible. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/first-meaningful-paint)."
        },
        speed-index-metric: {
            score: 86,
            displayValue: "2,610",
            rawValue: 2610,
            optimalValue: "< 1,250",
            extendedInfo: {},
            scoringMode: "numeric",
            name: "speed-index-metric",
            category: "Performance",
            description: "Perceptual Speed Index",
            helpText: "Speed Index shows how quickly the contents of a page are visibly populated. [Learn more](https://developers.google.com/web/tools/lighthouse/audits/speed-index)."
        }
    }
}

以上全部存储在this.props如何访问this.props.data['first-set-of-data']

我用这个电话: this.props.service.hindi["speed-index-metric"].score

更新,所以我刚刚意识到这些数据无法立即获得。redux store 只用一个空白对象启动。audits我试图访问的对象是通过异步请求拉入的。所以我试图访问第一次调用时不存在的道具,this.props这就是应用程序在第一次运行时失败的原因。

如果第一次加载时数据不存在,是否有让道具优雅地失败?在获取数据后,我的初始状态是否需要匹配完整的结构化状态?

4

0 回答 0