我有一个带有列表视图的页面:
<ListView items="{{ tasteList }}" visibility="{{tasteList.length> 0 ? 'visible' : 'collapse'}}">
我正在尝试检查asteList的长度并切换可见性,因此仅在其中包含项目的情况下才呈现列表视图,在这种情况下,我将呈现不同的布局:
<StackLayout visibility="{{tasteList.length = 0 ? 'visible' : 'collapse'}}">
在我的测试用例中,返回了3个项目。使用上面的代码,在初始页面加载时,列表不可见,并且出现我的StackLayout。如果我离开该页面并返回,则显示列表视图(只要我不清空viewmodel0。
如果我删除条件并仅使列表视图始终可见,则页面将按预期加载列表视图和三个项目。
似乎条件是在实际加载视图模型之前检查的,之后没有更新。当我将<Label text="{{ tasteList.length }}" />
放在页面顶部时
我看到“ 0”大约1秒钟,然后切换到“ 3”,但是在我的ListView / StackLayout上可见性未切换。
我在做什么错了?
答案 0 :(得分:0)
假设您要在表达式上使用==
或===
(为了提高可视性的条件语句),更重要的是,您应该在表达式前提及该属性,该属性应在更新时触发更改。 / p>
示例
<StackLayout visibility="{{ tasteList.length, tasteList.length === 0 ? 'visible' : 'collapse'}}">