如何在react-native中的数组中查找元素是否存在

时间:2019-01-08 17:22:51

标签: react-native react-redux

我正在尝试在检查是否存在字符串后渲染元素,例如数组中存在“ abc”。我尝试使用各种不同的函数,例如array.find(),array.includes(),array.some()这样做时,它给我一个错误-

  

TypeError:null不是一个对象(正在评估'o.includes')

下面是我在render函数内部使用的一段代码。 “ 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 :(得分:1)

您的渲染函数在存在数组数据之前运行,并且最初数组数据为null

确保首先将abc状态初始化为数组,

state = { abc: [] }

有了这个,您的第一个代码应该可以工作。