下面是我的 app.js ,用于一个新创建的react native应用。我正在尝试在安装组件,在其上进行映射并更改字段lst
时修改show
。
我期望componentDidMount
将同步执行,首先记录原始列表,如下所示:
[
{ show: false, src: 'pathtoimage1' },
{ show: false, src: 'pathtoimage2' }
]
然后,在调用this.modifyList(lst)
之后,下一个日志语句应为:
[
{ show: true, src: 'pathtoimage1' },
{ show: true, src: 'pathtoimage2' }
]
但是,当我执行代码时,我得到两个相同的日志条目:
很显然,我在这里缺少一些基本的了解。有人可以解释发生了什么,在哪里可以阅读更多内容以及如何实现我的目标?
import React, { Component } from 'react';
import { Text, View } from 'react-native';
export default class App extends Component {
constructor(props) {
super(props);
}
modifyList = (mylist) => {
mylist.map((obj, idx) => {
mylist[idx].show = true;
});
}
componentDidMount() {
const lst = [
{ show: false, src: 'pathtoimage1' },
{ show: false, src: 'pathtoimage2' }
]
console.log("before function", lst);
this.modifyList(lst);
console.log("after function", lst);
}
render() {
return (
<View>
<Text>Welcome to this MWE</Text>
</View>
)
}
}