如何根据choice_1的选择动态控制choice_2的选项显示?
解决动态调整input选项的问题
你遇到的问题根源在于这类脚本(比如TradingView Pine Script)中,input系列函数是在脚本初始化阶段执行的,运行时的条件判断无法修改已经初始化的input控件选项。你之前的写法里,脚本加载时会根据初始的choice_1默认值("A")创建对应的choice_2 input,之后切换choice_1到"B"时,不会重新生成choice_2的选项,因此无法生效。
可行的解决办法是通过动态生成choice_2的选项数组和默认值来实现需求,代码如下:
choice_1 = input.string(title="Choice 1", defval="A", options=["A", "B", "C"]) // 根据choice_1的值动态生成choice_2的选项列表 choice_2_options = choice_1 == "B" ? ["E", "F"] : ["D", "E", "F"] // 同步调整默认值,避免默认值不在选项范围内 choice_2_defval = choice_1 == "B" ? "E" : "D" choice_2 = input.string(title="Choice 2", defval=choice_2_defval, options=choice_2_options)
说明:这种写法会在脚本初始化阶段就根据choice_1的当前值计算出choice_2的选项和默认值,当你在界面上切换choice_1的选项时,脚本会重新初始化,choice_2的选项也会随之自动更新。需要注意的是,当choice_1切换到"B"时,原默认值"D"不在新选项列表中,因此必须同步修改默认值为选项中的有效值(比如示例中的"E"),否则会出现参数错误。
内容的提问来源于stack exchange,提问作者greg777
相关产品推荐
相关产品推荐

