小程序
小游戏
企业微信
微信支付
扫描小程序码分享
我想反馈一个 Bug,代码如下,我希望在onLoad两秒之后view的class变'disable',但是并没有如期望的那样
<
view
class
=
"{{ typeof(x)=='number' ? 'disable' : '' }}"
>
Page({
data:{
x:
'x'
},
onLoad(){
setTimeout(()=>{
this.setData({
x:2
});
},2000)
}
我提这个问题的重点不是可以怎么写,而是为什么不能这样写
5 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
你现在这种写法 x 的类型 与 list 也没什么关系啊,为什么不像下面这样写?
data: {
,
isX:
false
onLoad() {
let x = 2;
setTimeout(() => {
this
.setData({
x: x,
typeof
(x) ===
'number'
}, 2000)
"{{ isX ? 'disable' : '' }}"
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
用框架的话就可以用计算属性或者监听者模式,原生的好像是需要自己去监听这个X改变,然后用一个变量去存储这个typeof(x)的值,如果X变,这个重新计算一次,不就是监听了吗?
主要是我是需要在多个item里面写这个的,所以直接
<view wx:key="{{index}}" wx:for="{{list}}" class="{{ typeof(x)=='number' ? 'disable' : '' }}>{{item}}</view>
这样更加简洁,逻辑放在JS里处理确实也可以,但是稍微有些啰嗦
我也不指望小程序现在能解决这个问题,我想知道小程序的内部双向绑定的逻辑是怎么样的,是如何监听这个x的,是否是因为我的这种写法小程序就认为这个x变化了和view无关。什么样的情况小程序才会监听这个x?为什么这个做法不行,或者说到底什么样的写法是有效的
为什么在视图里面去判断;
逻辑在JS里面处理好啊。
这种太骚了,应该是没效果的,wxml好像不支持这种写法的
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
你现在这种写法 x 的类型 与 list 也没什么关系啊,为什么不像下面这样写?
Page({
data: {
x:
'x'
,
isX:
false
},
onLoad() {
let x = 2;
setTimeout(() => {
this
.setData({
x: x,
isX:
typeof
(x) ===
'number'
});
}, 2000)
}
});
<
view
class
=
"{{ isX ? 'disable' : '' }}"
>
用框架的话就可以用计算属性或者监听者模式,原生的好像是需要自己去监听这个X改变,然后用一个变量去存储这个typeof(x)的值,如果X变,这个重新计算一次,不就是监听了吗?
主要是我是需要在多个item里面写这个的,所以直接
<view wx:key="{{index}}" wx:for="{{list}}" class="{{ typeof(x)=='number' ? 'disable' : '' }}>{{item}}</view>
这样更加简洁,逻辑放在JS里处理确实也可以,但是稍微有些啰嗦
我也不指望小程序现在能解决这个问题,我想知道小程序的内部双向绑定的逻辑是怎么样的,是如何监听这个x的,是否是因为我的这种写法小程序就认为这个x变化了和view无关。什么样的情况小程序才会监听这个x?为什么这个做法不行,或者说到底什么样的写法是有效的
为什么在视图里面去判断;
逻辑在JS里面处理好啊。
这种太骚了,应该是没效果的,wxml好像不支持这种写法的