实例:现有两个页面index.js和category.js,我现在想在index.js中修改category.js的数据
- category = [{
- name: '物流配送',
- list: [{
- id: 1,
- job: '外卖骑手',
- checked: true
- }, {
- id: 2,
- job: '快递员',
- checked: false
- }, {
- id: 3,
- job: '司机',
- checked: false
- }, {
- id: 4,
- job: '网约车司机',
- checked: true
- }, {
- id: 5,
- job: '货运司机',
- checked: false
- }]
- },
- {
- name: '仓储',
- list: [{
- id: 1,
- job: '分拣打包扫描',
- checked: false
- }, {
- id: 2,
- job: '叉车工',
- checked: false
- }]
- },
- {
- name: '安保',
- list: [{
- id: 1,
- job: '保安',
- checked: false
- }],
- }
- ];
我现在已知的是name的值和id值,我需要修改对应name下list中对应id所对应的checked的值
import category from '../../utils/category'


方法中进行数据的修改,并将数据存入缓存
- select_position: function (e) {
- var id = e.currentTarget.dataset.id;//获取的id值
- var name = e.currentTarget.dataset.name;//获取的name值
- //查询所选的全部元素
- console.log(category)
- //查询category中对应的name项
- const item = category.find(item => item.name === name);
- if (item) {
- //查询对应name项下list对应的id项
- const sonitem = (item.list).find(sonitem => sonitem.id === id);
- //如果该项存在,将该项的checked值修改为与之相反的值
- if (sonitem) {
- sonitem.checked = !sonitem.checked;
- } else {
- console.log('没找到对应id值');
- }
- } else {
- console.log('没找到对应');
- }
- //延迟一秒后将数据存入缓存
- setTimeout(() => {
- wx.setStorageSync('category', JSON.stringify(category));
- }, 1000);
- },
判断缓存中是否有数据,如果有数据就执行缓存中的数据,如果没有就执行原始数据
- //定义一个数据用于存入数据
- let category = []
- // 从本地缓存中读取数据
- const cachedCategory = wx.getStorageSync('category');
- if (cachedCategory) {
- // 如果本地缓存中有数据,则将其赋值给 category 变量
- category = JSON.parse(cachedCategory);
- } else {
- // 如果本地缓存中没有数据,则使用默认的 category 数组
- category = [{
- name: '物流配送',
- list: [{
- id: 1,
- job: '外卖骑手',
- checked: true
- }, {
- id: 2,
- job: '快递员',
- checked: false
- }, {
- id: 3,
- job: '司机',
- checked: false
- }, {
- id: 4,
- job: '网约车司机',
- checked: true
- }, {
- id: 5,
- job: '货运司机',
- checked: false
- }]
- },
- {
- name: '仓储',
- list: [{
- id: 1,
- job: '分拣打包扫描',
- checked: false
- }, {
- id: 2,
- job: '叉车工',
- checked: false
- }]
- },
- {
- name: '安保',
- list: [{
- id: 1,
- job: '保安',
- checked: false
- }],
- }
- ];
- }
- export default category;