修改componentDidMount()中的对象

时间:2019-01-15 02:12:51

标签: reactjs react-native

下面是我的 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' }
      ]

但是,当我执行代码时,我得到两个相同的日志条目:

enter image description here

很显然,我在这里缺少一些基本的了解。有人可以解释发生了什么,在哪里可以阅读更多内容以及如何实现我的目标?

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>
    )
  }
}

0 个答案:

没有答案