-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
v-if="false" view内部过滤器会执行 #334
Comments
目前版本会执行,后续会优化一下 |
模板内方法也会被执行 |
有同样的问题, v-if 条件编译 中 存在过滤器, 必执行的, 这个 bug 让我头大 |
这个bug真的太致命了, 坑也太大了, 快快解决吧, 要不这个东西就是废废, 根本就太不灵活了 |
为什么? |
你试试这种情况: |
执行后的致命原理是什么? |
之前用vue的时候, 列表里的格式化逻辑, 都喜欢写在template里, 现在需要遍历添加了. |
这样子试试:{{ item.a&&item.a.b|filter }} filter中对于不合法的参数也加个校验 |
同样的问题,这坑真是深 |
啥时候会优化呀,这都半年了 |
相同问题,请问有计划什么时候修复这个问题吗? |
请问这个问题现在修复了吗,如果没解决的话有什么兼容的方法吗? |
提了快 1 年了,这么明显的 Bug 还不修复? |
2020年4月底了,还没解决 |
2020年6月8号,尚未解决 |
2020年6月19号,尚未解决 |
2020年7月28号,尚未解决 |
CLI最新的alpha版有相关优化,可以将依赖更新到2.0.0-alpha-28320200727005后测试一下 |
v-if="false" 是解决了不执行了, v-if="item.type==3" item.type的值是1 就报 Error in render: "TypeError: Cannot read property 'type' of undefined" 但是v-if="1==3"是可以的 |
|
我曹终于修复了,牛皮。好 |
更新到最新版还是有这个问题。。。 |
版本号多少,有没有示例 |
2.8.11.20200907 |
示例写法提供一下,可能有特殊情况未覆盖到,目前这边的已有的相关示例跑测试未发现问题 |
代码暂时贴不上来,就是很简单的一个for循环,最外层有做了数组存在的判断,里面的判断就是数组中数据对象的属性找不到,更新后才出的问题 |
你再把代码贴一下,把对应的绑定数据也提供一下,我用来测试 |
哦哦,不好意思了 <view class="order-list" v-if="orderList.length">
<view class="order-item" v-for="(order, index) in orderList" :key="index">
<!-- #ifdef H5 -->
<view class="btns" v-if="order.status=='wait_pay'">
<view class="payTs" v-if="payTips(order.pay_orderId)=='applet'">小程序待支付订单请通过小程序完成支付</view>
<view v-else></view>
<button class="buy" @click="pay(order.pay_orderId)" v-if="payTips(order.pay_orderId)=='wx'"> 付款</button>
</view>
<!-- #endif -->
<!-- #ifdef MP -->
<view class="btns" v-if="order.status=='wait_pay'">
<view class="payTs" v-if="payTips(order.pay_orderId)=='wx'">微信公众号待支付订单请通过微信公众号完成支付</view>
<view v-else></view>
<button class="buy" @click="pay(order.pay_orderId)" v-if="payTips(order.pay_orderId)=='applet'"> 付款</button>
</view>
<!-- #endif -->
</view> 报错的位置显示在这一行: order.$orig.status == "wait_pay"
var l0 = _vm.orderList.length
? _vm.__map(_vm.orderList, function(order, index) {
var $orig = _vm.__get_orig(order)
var m0 = _vm.renderState(order.status)
var m1 =
order.$orig.status == "wait_pay"
? _vm.payTips(order.pay_orderId)
: null |
报出的错误提供一下 |
@pursuccess 你直接新建一个工程打包成zip上传一下吧,要不你俩这样一直对话,收到好多邮件提醒 |
|
@pursuccess 测试未复现问题,你试试这个测试页面在你那报错吗 <template>
<view class="view">
<view class="order-list" v-if="orderList.length">
<view class="order-item" v-for="(order, index) in orderList" :key="index">
<!-- #ifdef H5 -->
<view class="btns" v-if="order.status=='wait_pay'">
<view class="payTs" v-if="payTips(order.pay_orderId)=='applet'">小程序待支付订单请通过小程序完成支付</view>
<view v-else></view>
<button
class="buy"
@click="pay(order.pay_orderId)"
v-if="payTips(order.pay_orderId)=='wx'"
>付款</button>
</view>
<!-- #endif -->
<!-- #ifdef MP -->
<view class="btns" v-if="order.status=='wait_pay'">
<view class="payTs" v-if="payTips(order.pay_orderId)=='wx'">微信公众号待支付订单请通过微信公众号完成支付</view>
<view v-else></view>
<button
class="buy"
@click="pay(order.pay_orderId)"
v-if="payTips(order.pay_orderId)=='applet'"
>付款</button>
</view>
<!-- #endif -->
</view>
</view>
</view>
</template>
<script>
export default {
data () {
return {
orderList: []
}
},
onReady () {
this.orderList = [
{ "pay_orderId": "micropay2225041020", "wx_orderId": "", "status": "closed" },
{ "pay_orderId": "micropay2225041012", "wx_orderId": "", "status": "wait_pay" },
{ "pay_orderId": "wx2225041012", "wx_orderId": "", "status": "wait_pay" },
{ "pay_orderId": "applet2225041012", "wx_orderId": "", "status": "wait_pay" },
]
},
methods: {
payTips (pay_orderId) {
if (pay_orderId.indexOf('wx') !== -1) {
return 'wx'
} else if (pay_orderId.indexOf('applet') !== -1) {
return 'applet'
} else {
return ''
}
},
pay () {
}
}
}
</script>
<style>
</style> |
谢谢你了!!!这个放在我这里也报错,我感觉是编辑器的问题,更新后才出现的这个问题。也可能是电脑问题吧,哎 |
你不是 CLI 创建的工程吧,如果不是的话,你重新下载编辑器试试 @pursuccess |
嗯嗯,不是cli创建,我重新下载试一下吧,谢谢 |
问题描述
false内的视图过滤器会被执行
复现步骤
{{news.update_time|formatDate}}
预期结果
不应该执行
实际结果
[Vue warn]: Error in render: "TypeError: Cannot read property 'replace' of undefined"
系统信息:
The text was updated successfully, but these errors were encountered: