Доступ к вложенному объекту в React Props - PullRequest
0 голосов
/ 14 июля 2020

У меня есть реквизиты в моем дочернем компоненте, например,

реквизиты в дочернем:

myProps = 
{
    "url": "some url",
    "child_tiers": [
        {
            "tier_type": 1,
            "child_tiers": [
                {
                    "tier_type": 2,
                    "lower": 1.0,
                    "upper": 4.0,
                    "child_tiers": [
                        {
                            "tier_type": 3,
                            "lower": 0.0,
                            "upper": 5.0,
                            "child_tiers": [
                                {
                                    "tier_type": 4,
                                    "lower": 1,
                                    "upper": 100,
                                    "values": {
                                        "lowest": 85,
                                        "highest": 95,
                                        "multiplier": 18,
                                        "tier": "deepest tier"
                                    }
                                },
                                {
                                    "tier_type": 4,
                                    "lower": 100,
                                    "upper": 200,
                                    "values": {
                                        "lowest": 185,
                                        "highest": 195,
                                        "multiplier": 118,
                                        "tier": "deepest tier"
                                    }
                                }
                            ],
                            "values": null
                        }
                    ],
                    "values": null
                }
            ],
            "values": null
        }
    ],
    "description": "Important Description"
}

Эти реквизиты являются частью состояния родительского компонента (состояние родительского компонента устанавливается путем вызова API с помощью выборки). Я хочу создать 3 массива, по одному для наименьшего, наибольшего и множительного значений на самом глубоком уровне. Я могу вести консольный журнал this.props.myProps.url / this.props.myProps.description / this.props.myProps.child_tiers, но когда я это делаю this.props.myProps.child_tiers[0], я получаю сообщение об ошибке TypeError: Cannot read property '0' of undefined. Есть ли чистый способ добиться этого? Могу ли я использовать здесь Promise? Другие предлагаемые решения, связанные с нулевым состоянием, у меня не работали.

1 Ответ

0 голосов
/ 14 июля 2020

Вот как вы можете получить доступ к объекту со значениями lowest, highest and multiplier

myProps = 
{
    "url": "some url",
    "child_tiers": [
        {
            "tier_type": 1,
            "child_tiers": [//
                {
                    "tier_type": 2,
                    "lower": 1.0,
                    "upper": 4.0,
                    "child_tiers": [//
                        {
                            "tier_type": 3,
                            "lower": 0.0,
                            "upper": 5.0,
                            "child_tiers": [//
                                {
                                    "tier_type": 4,
                                    "lower": 1,
                                    "upper": 100,
                                    "values": {
                                        "lowest": 85,
                                        "highest": 95,
                                        "multiplier": 18,
                                        "tier": "deepest tier"
                                    }
                                },
                                {
                                    "tier_type": 4,
                                    "lower": 100,
                                    "upper": 200,
                                    "values": {
                                        "lowest": 185,
                                        "highest": 195,
                                        "multiplier": 118,
                                        "tier": "deepest tier"
                                    }
                                }
                            ],
                            "values": null
                        }
                    ],
                    "values": null
                }
            ],
            "values": null
        }
    ],
    "description": "Important Description"
}

o=myProps.child_tiers[0]["child_tiers"][0]["child_tiers"][0]["child_tiers"][0].values
lowest=[{low:o.lowest}]
highest=[{hight:o.highest}]
multiplier=[{multiple:o.multiplier}]
console.log(o)
console.log(lowest,highest,multiplier)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...