可见性表达式异常

BUG反馈 · 58 次浏览
白云朔 创建于 3天6小时前

问题详见:无法获取可见性 - by 白云朔 - 动作信息 - Quicker

具体表现为无法获取到词典变量内的键值。

(该词典的值为扩展选项中的调用子程序返回,非普通词典,猜测可能是类型错误等)


回复内容
CL 2天21小时前
#1

表单 compute 是在某个字段改变后,才会触发其它字段的自动计算。 在初始化的时候,“返回值”还是空的,所以会提示上面的错误。可以先给变量设置一下默认值试试

白云朔 回复 CL 2天18小时前 :

无效,一样会报错。并且在词典变量的控件类型非键值对编辑器时,状态更新后也还是会提示错误。C大您可以在我的发的示例动作里面试一下就知道了。

CL 回复 白云朔 2天17小时前 :

我早上试了呢,给返回值这个变量设置默认值。 {"输出值":true}

白云朔 回复 CL 2天14小时前 :

嘶,确实是没有报错了(应该是我记错了,抱歉抱歉)。
但是如果在可见性表达式中反转值,依然会报错,比如  $= !({返回值}["输出值"]) ,会提示无法转换(如果不是布尔值的话,没转换之前又是为什么能生效的呢)。



并且对于案例中的第二个多字段表单,字典的输入方式不是「键值对编辑器」而是显示文本时,其他选项中的 可见性表达式 会失效,表现为勾选/取消勾选时可见性不更新(但是其他字段的compute扩展设置更新值又是正常的

白云朔 最后更新于 2天14小时前
CL 回复 白云朔 2天11小时前 :

词典是 Dictionary<string, object> 值是object类型,要根据实际类型强制或使用Convert转换成bool才能用叹号。

而且只有编辑控件才能触发重新计算,因为它解决的是一个字段变化来更新另一个字段的需求的,不是所有情况都适用。

白云朔 回复 CL 2天6小时前 :

使用 Convert.ToBoolean() 了之后确实反转值不报错了。但是还是存在以下两个问题:

 1.可见性的值为False时依然显示,True时反而隐藏。

 2.在输入文本框中连续输入时,状态会反转(即便子程序返回值并未改变)

该部分问题已更新到问题案例中:无法获取可见性 - by 白云朔 - 动作信息 - Quicker



白云朔 最后更新于 2天6小时前
CL 回复 白云朔 1天20小时前 :

这是一个比较复杂的问题。 所依赖的是词典的值,但是词典编辑控件不会触发变更事件,也就是这种类型的输入方式,它是不支持触发更新表单的。一般只有输入框、下拉框的方式才能触发更新表单。

回复主贴