• 微信小程序:怎么在一个js中修改另一个js的数据(这里通过缓存进行实现)


    实例:现有两个页面index.js和category.js,我现在想在index.js中修改category.js的数据

    初始数据

    1. category = [{
    2. name: '物流配送',
    3. list: [{
    4. id: 1,
    5. job: '外卖骑手',
    6. checked: true
    7. }, {
    8. id: 2,
    9. job: '快递员',
    10. checked: false
    11. }, {
    12. id: 3,
    13. job: '司机',
    14. checked: false
    15. }, {
    16. id: 4,
    17. job: '网约车司机',
    18. checked: true
    19. }, {
    20. id: 5,
    21. job: '货运司机',
    22. checked: false
    23. }]
    24. },
    25. {
    26. name: '仓储',
    27. list: [{
    28. id: 1,
    29. job: '分拣打包扫描',
    30. checked: false
    31. }, {
    32. id: 2,
    33. job: '叉车工',
    34. checked: false
    35. }]
    36. },
    37. {
    38. name: '安保',
    39. list: [{
    40. id: 1,
    41. job: '保安',
    42. checked: false
    43. }],
    44. }
    45. ];

    修改页面代码-index.js

    我现在已知的是name的值和id值,我需要修改对应name下list中对应id所对应的checked的值

    引入存数据的页面category.js

    import category from '../../utils/category'

     

    修改数据

    方法中进行数据的修改,并将数据存入缓存

    1. select_position: function (e) {
    2. var id = e.currentTarget.dataset.id;//获取的id值
    3. var name = e.currentTarget.dataset.name;//获取的name值
    4. //查询所选的全部元素
    5. console.log(category)
    6. //查询category中对应的name项
    7. const item = category.find(item => item.name === name);
    8. if (item) {
    9. //查询对应name项下list对应的id项
    10. const sonitem = (item.list).find(sonitem => sonitem.id === id);
    11. //如果该项存在,将该项的checked值修改为与之相反的值
    12. if (sonitem) {
    13. sonitem.checked = !sonitem.checked;
    14. } else {
    15. console.log('没找到对应id值');
    16. }
    17. } else {
    18. console.log('没找到对应');
    19. }
    20. //延迟一秒后将数据存入缓存
    21. setTimeout(() => {
    22. wx.setStorageSync('category', JSON.stringify(category));
    23. }, 1000);
    24. },

    数据页面代码category.js

    判断缓存中是否有数据,如果有数据就执行缓存中的数据,如果没有就执行原始数据

    1. //定义一个数据用于存入数据
    2. let category = []
    3. // 从本地缓存中读取数据
    4. const cachedCategory = wx.getStorageSync('category');
    5. if (cachedCategory) {
    6. // 如果本地缓存中有数据,则将其赋值给 category 变量
    7. category = JSON.parse(cachedCategory);
    8. } else {
    9. // 如果本地缓存中没有数据,则使用默认的 category 数组
    10. category = [{
    11. name: '物流配送',
    12. list: [{
    13. id: 1,
    14. job: '外卖骑手',
    15. checked: true
    16. }, {
    17. id: 2,
    18. job: '快递员',
    19. checked: false
    20. }, {
    21. id: 3,
    22. job: '司机',
    23. checked: false
    24. }, {
    25. id: 4,
    26. job: '网约车司机',
    27. checked: true
    28. }, {
    29. id: 5,
    30. job: '货运司机',
    31. checked: false
    32. }]
    33. },
    34. {
    35. name: '仓储',
    36. list: [{
    37. id: 1,
    38. job: '分拣打包扫描',
    39. checked: false
    40. }, {
    41. id: 2,
    42. job: '叉车工',
    43. checked: false
    44. }]
    45. },
    46. {
    47. name: '安保',
    48. list: [{
    49. id: 1,
    50. job: '保安',
    51. checked: false
    52. }],
    53. }
    54. ];
    55. }
    56. export default category;

  • 相关阅读:
    万能JAVA面试题
    基于Windows编译someip
    数字化转型加快,低代码平台优势凸显
    调整COSWriter解决X-easypdf / PDFBOX生成大量数据时OOM问题
    MySQL表的增删查改(CRUD)
    重学Elasticsearch第5章 : 过滤查询、聚合查询
    vue-project-01
    企业工商四要素核验API 推荐
    bizlog通用操作日志组件(使用篇)
    详解:程序部署在服务器上,localhost可以访问Tomcat,但是外网ip无法访问
  • 原文地址:https://blog.csdn.net/weixin_46001736/article/details/134259983