Javascript 我能';t初始化此数组以本机方式进行响应

Javascript 我能';t初始化此数组以本机方式进行响应,javascript,react-native,Javascript,React Native,每次我启动expo render时,状态数组person2不初始化,并且当person2初始化时出现“找不到变量person2”错误,代码正常启动,但当我重新启动应用程序person2时未定义 my person.js: export default class Example1 extends React.Component { constructor (props) { super (props) this.state = { nameres: &

每次我启动expo render时,状态数组person2不初始化,并且当person2初始化时出现“找不到变量person2”错误,代码正常启动,但当我重新启动应用程序person2时未定义

my person.js:

export default class Example1 extends React.Component {
  constructor (props) {
      super (props)
      this.state = {
        nameres: "",
        person2 : []
      }
    }
    setRes (nameres) {
      this.setState ({nameres})
      person2 = [];
      for (let i=0; i<person.length; i++) {
        list = person[i].first_name.toUpperCase();
        if (list.includes(nameres.toUpperCase())) {          
          person2.push(person[i])
      }
        this.setState({ person2 });
    }}
    
  render() {
    const image = { uri: "../img/23.jpg" };    
    return (
      <View style={styles.main_container}>
        <ImageBackground source={image} style={styles.image} blurRadius={5}>
          <TextInput style={styles.textinput} placeholder=' recherche par nom' onChangeText={(text) => this.setRes(text)}
          value={this.state.nameres}/>
          <FlatList
            data={this.state.person2} 
            extraData={person2}
            keyExtractor={(item) => item.id.toString()}
            renderItem={({item}) => <ItemPerson contid={item}/>}
          />
        </ImageBackground>
        
      </View>
    );
  }
}
这可能会有帮助

setRes (nameres) { 
      const person2 = []; // initialize here and add let or const 
      ...
}

您可以在
componentDidMount
中调用
setRes
,当屏幕呈现类似的内容时执行

componentDidMount(){
  this.setRes(""); // set default
}
渲染中

render() {
    const image = { uri: "../img/23.jpg" };    
    return (
      <View style={styles.main_container}>
        ....
       <FlatList
            ...
            extraData={this.state.person2} // add `person2` from `state` like
            ......
          />        
      </View>
    );
}
render(){
const image={uri:“../img/23.jpg”};
返回(
....
);
}

非常感谢您,如果我想在启动时执行setRes,我该怎么做?您可以在
componentDidMount
中调用
setRes
,当屏幕显示时执行,因为我也更新了我的答案。如果有帮助,请接受作为答案:-)谢谢你,穆奇·努鲁丁
render() {
    const image = { uri: "../img/23.jpg" };    
    return (
      <View style={styles.main_container}>
        ....
       <FlatList
            ...
            extraData={this.state.person2} // add `person2` from `state` like
            ......
          />        
      </View>
    );
}