问一个 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;

}

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


回答:

上面那种不行是因为你传递的已经是个原始值了,并不是对象,所以没有反应,如果是要抽离这个逻辑的话,可以加个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);

}

以上是 问一个 VueJs 的问题,变量引用问题? 的全部内容, 来源链接: utcz.com/p/933104.html

回到顶部