Vue 3: v-model helper is not reactive(VUE 3:V型帮手没有反应能力)
本文介绍了VUE 3:V型帮手没有反应能力的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我为vue 3v型绑定写了一个小帮手。奇怪的是,它并不是完全起作用的。内部更改以正确的方式发出,外部更改不被识别。但是,如果我在我的组件中使用相同的计算函数,一切都会按预期运行。 我如何编写帮助器,以便完全反应?
帮助者:
import { computed, SetupContext, WritableComputedRef } from 'vue';
export const vModel = <T>(val: T, context: SetupContext, binding = 'modelValue'): WritableComputedRef<T> =>
computed({
get: () => val,
set: (value) => {
context.emit(`update:${binding}`, value);
},
});
证监会:
<template>
<div class="ms-deleteInput">
<input class="ms-deleteInput__input" :label="label" v-model="inputVal" />
<button @click="$emit('delete')" />
</div>
</template>
<script lang="ts">
import { defineComponent, computed } from 'vue';
export default defineComponent({
name: "deleteInput",
props: {
modelValue: {
type: String,
required: true,
},
label: {
type: String,
required: true,
},
},
setup(props, context) {
// This works
const inputVal = computed({
get: () => props.modelValue,
set: (value) => {
context.emit(`update:modelValue`, value);
},
});
// This works, but external changes of modelValue prop will not be detected:
const inputVal = vModel(props.modelValue, context);
return {
inputVal,
};
},
});
</script>
推荐答案
如果您不将道具传递给帮助器,它将不会跟踪计算属性中道具的更改。
将道具而不是pros.Model Value传递给帮助器:
const inputVal = vModel(props, context);
更新帮助器:
export const vModel = (props, binding) =>
computed({
get: () => props.modelValue,
set: (value) => {
context.emit(`update:${binding}`, value);
},
});
这篇关于VUE 3:V型帮手没有反应能力的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:VUE 3:V型帮手没有反应能力


基础教程推荐
猜你喜欢
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- 我什么时候应该在导入时使用方括号 2022-01-01
- 响应更改 div 大小保持纵横比 2022-01-01
- 悬停时滑动输入并停留几秒钟 2022-01-01
- 动态更新多个选择框 2022-01-01
- 在for循环中使用setTimeout 2022-01-01
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01