Javascript 我能';t初始化此数组以本机方式进行响应
每次我启动expo render时,状态数组person2不初始化,并且当person2初始化时出现“找不到变量person2”错误,代码正常启动,但当我重新启动应用程序person2时未定义 my person.js: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: &
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>
);
}