小编kho*_*ayr的帖子

vue.js 不更新嵌套 v-for 循环中的属性

我正在使用 vue.js 和 React,目前我正在尝试改编一本关于 React 的书中的一个简单的可编辑 HTML 表格示例,以便学习 Vue。

\n\n

以下是代码中发生的情况:

\n\n
    \n
  1. 用户点击 td 元素
  2. \n
  3. td 元素的坐标存储在 rowSel、colSel 变量中
  4. \n
  5. 坐标变化导致Vue重新渲染视图
  6. \n
  7. 用户单击的 td 单元格添加了“contenteditable=true”属性,并添加了 focusout 事件监听器
  8. \n
  9. 然后,用户可以更改 td 单元格中的数据,然后单击单元格以停止编辑(触发焦点)
  10. \n
  11. 当用户单击单元格时, rowSel 和 colSel 变量将被重置,这会导致重新渲染
  12. \n
  13. vue 重新渲染视图,并且由于坐标被重置,Vue 应该从相关 td 元素中删除 contenteditable 和 focusout
  14. \n
  15. 然后,包含表格数据的数据数组将使用用户在单元格可编辑时输入的文本进行更新(尚未实现)
  16. \n
\n\n

我遇到的问题是第 7 步。我可以单击表格中的多个单元格,所有单元格中仍将设置 contenteditable="true"。如果您查看 Chrome 开发工具,您会发现 contenteditable 标签粘贴到所有被单击的单元格上。

\n\n

我相信问题的发生是因为我有嵌套的 for 循环,但我不确定如何正确地向它们添加键以使其正常工作。我尝试添加键,但我认为我做得不正确。

\n\n

JSFiddle:\n https://jsfiddle.net/o69yaq7L/

\n\n

这是代码:

\n\n

\r\n
\r\n
"use strict";\r\n\r\nvar headers = [\r\n    "Book", "Author", "Language", …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js

3
推荐指数
1
解决办法
4596
查看次数

标签 统计

javascript ×1

vue.js ×1