一个 Modifier 绑定两个组件,属性更新后会一起变,这是正常的吗?

我把同一个 Modifier 实例绑定到了两个按钮上,点击按钮 1 会改变背景色,结果两个按钮的颜色都变了。这是预期的行为吗?感觉不太对。

let modifier = new MyButtonModifier();
Button("Btn1").attributeModifier(modifier)
Button("Btn2").attributeModifier(modifier)

点击 Btn1 后,Btn2 也变色了,这是设计就是这样的?

阅读 334
1 个回答

对啊~,这是预期行为。
如果同学你需要组件独立控制,建议为每个组件创建独立 Modifier 实例:

Button("Btn1").attributeModifier(new MyButtonModifier())
Button("Btn2").attributeModifier(new MyButtonModifier())

或者将状态隔离到 Modifier 外部,传入构造参数来区分组件行为。

推荐问题