Как найти, если элемент существует в массиве в Reaction-native - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь визуализировать элемент после проверки наличия строки, например, «abc» присутствует в массиве. Я пытался использовать различные функции, такие как array.find (), array.include (), array.some ()

TypeError: null не является объектом (оценка 'o.include')

Ниже приведен фрагмент кода, который я использую внутри функции рендеринга. «abc» - это массив, в котором я пытаюсь проверить, существует ли строка «a» в этом массиве, если он действительно отображает этот элемент ExpandedHeader.

PS: я новичок в реакции-родной.

<View>
{abc.includes("a") && <ExpandedHeader title={"Got it"} 
       expanded={this.state.riskRatingExpanded}
       onPress={() => {this.setState({
                    riskRatingExpanded :!this.state.riskRatingExpanded,
                    basicDetailsExpanded : false,
                    envProfileExpanded : false,
                    nwswProfileExpanded : false,
                    additionalInfoExpanded : false,
                    scoresExpanded : false,
                  });
             }}

         />}
</View>

Но вместо этого, если я делаю ниже, это работает -

<View>
    {abc != null && <ExpandedHeader title={abc[0]} 
           expanded={this.state.riskRatingExpanded}
           onPress={() => {this.setState({
                        riskRatingExpanded :!this.state.riskRatingExpanded,
                        basicDetailsExpanded : false,
                        envProfileExpanded : false,
                        nwswProfileExpanded : false,
                        additionalInfoExpanded : false,
                        scoresExpanded : false,
                      });
                 }}

             />}
    </View>

1 Ответ

0 голосов
/ 08 января 2019

Ваша функция рендеринга запускается до того, как данные вашего массива присутствуют, и изначально ваши данные массива равны null,

убедитесь, что вы сначала инициализируете свое состояние abc как массив,

state = { abc: [] }

с этим ваш первый код должен работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...