动态对象代替属性,而不是添加属性

问题描述

因此,我正在尝试制定每日计划,因此您需要填写特定日期的任务。任务存储在状态对象中。根据年,月,日,任务类型,主题和任务名称,将每个任务置于其自己的动态属性中。 这是我目前正在对它进行排序

export const addTask = (tasks,fields) => {
// tasks are directly from the state
// fields are gathered from a form,then put as an argument for this function

  console.log("pre add",tasks);
  fields.subject = capitalizefirstLetter(fields.subject);
  fields.name = capitalizefirstLetter(fields.name);

  tasks[fields.date[0]] = {};
  tasks[fields.date[0]][fields.date[1]] = {};
  tasks[fields.date[0]][fields.date[1]][fields.date[2]] = {};
  tasks[fields.date[0]][fields.date[1]][fields.date[2]][fields.type] = {};
  tasks[fields.date[0]][fields.date[1]][fields.date[2]][fields.type][fields.subject] = {};
  tasks[fields.date[0]][fields.date[1]][fields.date[2]][fields.type][fields.subject][fields.name] = {};
  tasks[fields.date[0]][fields.date[1]][fields.date[2]][fields.type][fields.subject][fields.name] = fields.details;

  console.log("post add",tasks);

  return tasks;
};

这是我的状态:

const state = {
  tasks: {// this is what I put in the addTask function},dates: {
    monthCounter: 0,targetDate: {},},};

这也是我调用函数的方式:

state.tasks = addTask(state.tasks,fields);

每当我添加一个任务时,最后一个任务就会被删除/替换。即使两个任务的主题相同,但名称不同,第一个任务也会被删除

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)