问一个 VueJs 的问题,变量引用问题?

我想这么写 不行

<div v-for="item of list">
<div @click="PromptSetValue(item.it)"></div>


function PromptSetValue(e){
    var text = prompt();
    e = text;
}

需要这么写 才可以
https://codepen.io/tsymq-live...

<div v-for="item of list">
<div @click="PromptSetValue(item)"></div>


function PromptSetValue(e){
    var text = prompt();
    e.it = text;
}

有没有什么好办法,因为还需要在其它地方用的这个方法

阅读 1.7k
2 个回答

上面那种不行是因为你传递的已经是个原始值了,并不是对象,所以没有反应,如果是要抽离这个逻辑的话,可以加个key参数

<div v-for="item of list">
<div @click="PromptSetValue(item, 'it')"></div>


function PromptSetValue(e, key){
    var text = prompt();
    e[key] = text;
}

另一种方法

<div v-for="item of list">
<div @click="PromptSetValue((val)=>item.it=val)"></div>

function PromptSetValue(funCall){
    var text = prompt();
    funCall && funCall(text);
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题