收藏
回答

改变数组某一对象中元素的值,为啥同数组中别的对象的元素的值会改变?

回答关注问题邀请回答
收藏

6 个回答

  • Chen.x
    Chen.x
    07-07

    我也遇到过相同问题,也考虑过浅拷贝问题,应该不是,应该是setData这个函数问题,真是蛋疼,我现在使用本地缓存来解决问题。多谢指教

    贴点代码:

    <pre>if (is_date_tab_dat) {

    console.log('是日期选项卡产品:', is_date_tab_dat);

    let d_s_key = so.s_key,

    tabs = this.data.tabList,

    tab_idx = tabs.findIndex((item) => item.s_str === d_s_key),

    tab_o = (tab_idx >= 0) ? tabs[tab_idx] : null,

    new_tabs = tabs;

    console.log('当前选项卡:', tabs, tab_o, tab_o.products);

    if (tab_o && !tab_o.products) {

    //保存到本地缓存

    var ls_tabs = wx.getStorageSync('LastDateTabList');

    if (!!ls_tabs && !!ls_tabs.tabs_arr && !!ls_tabs.tabs_arr[tab_idx] && !ls_tabs.tabs_arr[tab_idx].products) {

    console.log('set_local_storge_products_290:', ls_tabs.tabs_arr, ls_tabs.tabs_arr[tab_idx], result_products);

    ls_tabs.tabs_arr[tab_idx].products = result_products;

    wx.setStorageSync('LastDateTabList', {

    'get_time_stamp': Date.now(),

    'tabs_arr': ls_tabs.tabs_arr,

    });

    new_tabs = ls_tabs.tabs_arr;


    } else if (!ls_tabs) {

    wx.setStorageSync('LastDateTabList', {

    'get_time_stamp': Date.now(),

    'tabs_arr': tabs

    });

    } else {

    console.log('本地缓存[LastDateTabList]异常:', ls_tabs);

    }

    this.setData({

    tabList: new_tabs,

    });

    //下拉刷新数据应该在这里处理            

    /* tab_o.products = result_products;

    tabs[tab_idx] = tab_o;

    console.log('set_products_282:', tabs, tabs[tab_idx], tab_o, result_products);

    ++set2;

    console.log('set_tabs_list_products2:', set2, tab_idx);

    this.setData({

    tabList: tabs,

    }); */


    }

    }</pre>

    07-07
    有用
    回复
  • 微盟
    微盟
    2021-11-26

    猜测应该是所有数组中该对象指向同一内存地址,导致值改了之后,所有都改了

    2021-11-26
    有用
    回复
  • 鲍红星
    鲍红星
    2021-05-24

    这个问题,解决了吗? 我也遇到相同的问题,很是头疼

    2021-05-24
    有用
    回复
  • 一片绿叶
    一片绿叶
    2021-02-23

    贴代码出来

    2021-02-23
    有用
    回复
  • xxxidream
    xxxidream
    2020-09-29

    应该是浅拷贝的问题

    2020-09-29
    有用
    回复
  • 木有鱼丸
    木有鱼丸
    2020-09-29

    点开看看 里面到底什么数据结构

    2020-09-29
    有用
    回复 1
    • Allen
      Allen
      2020-09-29
      数组
      2020-09-29
      回复
登录 后发表内容
问题标签