Javascript 数组中的扩展操作出错。TS1005:'';预期。打字稿

Javascript 数组中的扩展操作出错。TS1005:'';预期。打字稿,javascript,arrays,reactjs,typescript,spread-syntax,Javascript,Arrays,Reactjs,Typescript,Spread Syntax,我无法找出我在第行中遗漏了什么。第[SECTION\u ID节。它总是显示一个打字错误“,” 常见问题解答:sections-是一个内部包含对象的数组 尝试修改自定义创建的节的特定对象 标记节号 附言 我还尝试将行.sections[SECTION\u ID]放在一个额外的括号内[],但不幸的是,这没有帮助…有什么解决方案吗 rows: state.rows.map( row => row.ID === action.rowID ? {

我无法找出我在第
行中遗漏了什么。第[SECTION\u ID
节。它总是显示一个打字错误“,”

常见问题解答:
sections
-是一个内部包含
对象的数组
尝试修改自定义创建的节的特定对象
标记节号

附言

我还尝试将
行.sections[SECTION\u ID]
放在一个额外的括号内
[]
,但不幸的是,这没有帮助…有什么解决方案吗

  rows: state.rows.map(
    row =>
      row.ID === action.rowID
        ? {
            ...row,
            sections: [
              ...row.sections,
              row.sections[SECTION_ID]: { // error is here
                ...row.sections[SECTION_ID],
                data: {
                  ...// some data
                }
              }
            ]
          }
        : row
  )

如果试图在不改变数组的情况下替换数组某个索引处的元素,可以创建数组的浅层副本,然后在该索引处设置值。例如:

state.rows.map((row) => {
  if (rowID !== action.rowID) {
    return row;
  }
  const sectionCopy = [...row.sections];
  sectionCopy[SECTION_ID] = {
    ...row.sections[SECTION_ID],
    data: {
      // some data
    },
  };
  return {
    ...row,
    sections: sectionCopy,
  };
});

如果试图在不改变数组的情况下替换数组某个索引处的元素,可以创建数组的浅层副本,然后在该索引处设置值。例如:

state.rows.map((row) => {
  if (rowID !== action.rowID) {
    return row;
  }
  const sectionCopy = [...row.sections];
  sectionCopy[SECTION_ID] = {
    ...row.sections[SECTION_ID],
    data: {
      // some data
    },
  };
  return {
    ...row,
    sections: sectionCopy,
  };
});

您不能通过这种方式对
数组中的
元素进行
排列
变异。使用这种方法,您每次只需向相同的
数组
添加一个新的变异
元素
。因此,如果您想使其正确,您需要使用
映射
迭代器:

rows: state.mymaps.rows.map(
    row =>
      row.ID === action.rowID
        ? {
            ...row,
            sections: row.sections.map(
              (section, index) =>
                index === JOIN_SECTION_ID
                  ? {
                      ...section,
                      data: {
                        ...section.data
                      }
                   } : section
             )
          } : row
)

您不能通过这种方式对
数组中的
元素进行
排列
变异。使用这种方法,您每次只需向相同的
数组
添加一个新的变异
元素
。因此,如果您想使其正确,您需要使用
映射
迭代器:

rows: state.mymaps.rows.map(
    row =>
      row.ID === action.rowID
        ? {
            ...row,
            sections: row.sections.map(
              (section, index) =>
                index === JOIN_SECTION_ID
                  ? {
                      ...section,
                      data: {
                        ...section.data
                      }
                   } : section
             )
          } : row
)

节应该是数组还是对象?它是用方括号写的,使之成为数组,但是你试图在它里面放一个键/值对,就像一个对象一样。@NicholasTower hi!
sections
是一个数组,里面有对象,是的。在这种情况下,我试图通过自定义标志修改
sections
的特定对象
SECTION_ID
要在arrayok中找到它,那么您是要将一个对象推到数组的末尾,还是在某个索引处替换一个对象?很难说您要在这里得到什么输出。您的
sections
数组中的第二个元素是否应该是对象?@KirkLarkin hi!。
节的所有元素都是re the
objects
。节是数组还是对象?它是用方括号写的,使其成为数组,但你试图将一个键/值对像对象一样放在里面。@NicholasTower hi!
节是一个数组,里面有对象,是的。在这种情况下,我试图修改
节的特定对象ons
通过自定义标志
SECTION\u ID
在arrayok中找到它,那么您是在尝试将对象推到数组的末尾,还是在某个索引处替换对象?很难说您试图在这里获得什么输出。您的
sections
数组中的第二个元素是否应该是对象?@KirkLarkin hi
部分
对象
。谢谢,我在我的问题帖子中也使用了相同的技巧,但它不通过三元运算符工作,这就是为什么…谢谢,我在我的问题帖子中也使用了相同的技巧,它不通过三元运算符工作,这就是为什么。。。