小编Pet*_*ard的帖子

无法分配给对象“#<Object>”的只读属性“property”

我有这个问题。

带接口:

export interface IDevice {
  id: string,
  selected: boolean
}
Run Code Online (Sandbox Code Playgroud)

通过以下方式创建实例:

let newDevice: IDevice = {
  id: uuid4(),
  selected: false,
} as IDevice;
Run Code Online (Sandbox Code Playgroud)

它以反冲状态添加到数组中,并在 React 中用于使用 useRecoilState() 检索数组的函数中。 const [leftList, setLeftList] = React.useState<IDevice[]>([]);

现在它在处理程序中用于选择列表控件上的设备,这里发生错误:

...
leftList.map((item: IDevice) => {     
      if (item.id === event.dataItem.id) {
        item.selected = !item.selected;
      }
      return item;
    })
...
Run Code Online (Sandbox Code Playgroud)

我收到错误:无法分配给对象“#”的只读属性“选定”

即使先通过 [...leftList] 克隆数组也没有帮助。

我迷路了:-)希望有人能对此有所了解吗?

javascript interface instance readonly typescript

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

instance ×1

interface ×1

javascript ×1

readonly ×1

typescript ×1