试图在 Flutter 中从有状态 parent class 重绘无状态 child class?
Trying to repaint stateless child class from stateful parent class in Flutter?
我会简化我想做的事情。我的应用程序在 HomePage(Stateful) class => 一个按钮和一个名为 BallsContainer(Stateless) 的自定义 class 上有两个元素,它是一个具有名为 changeNumbers 的方法的容器,该方法调用 LottoGame 方法 changeNumber。 BallsContainer 的 child 是 LottoGame(无状态)。 LottoGame 也是一个具有 int ballNumber = 0 属性 和 changeNumber(){ballNumber = 10} 方法的容器。 LottoGame 的 child 被命名为 Ball(无状态),是一个带有 CircleAvatar 和文本(显示数字)和一个 属性 最终 int ballNumber 的堆栈。
现在从主页按钮我写了这样的代码。
var ballsContainer = BallsContainer();// 这是在 class 层
onPressed(){setState(){ballsContainer.changeNumbers();}}
在 BallContainer 中 class changeNumbers(){lottoGame.changeNumber();} // lottoGame 处于 class 级别定义
在 LottoGame 中 class changeNumber(){ballNumber = 10}
当我调用点击按钮方法但 LottoGame class 没有时 rebuild.I 也尝试将 LottoGame 更改为 StatefullWidget 但它也没有 work.Shouldn setState 重建它的所有 child 小部件?我做错了什么?
在我看来你对flutter的使用有点不对,它的诀窍是如果widget没有改变,它就不会重绘。您不需要在 class 字段中存储小部件,而是每次调用小部件构造函数并向其传递必要的参数,只要您传递更改的参数,就会重新绘制依赖它们的小部件
我会简化我想做的事情。我的应用程序在 HomePage(Stateful) class => 一个按钮和一个名为 BallsContainer(Stateless) 的自定义 class 上有两个元素,它是一个具有名为 changeNumbers 的方法的容器,该方法调用 LottoGame 方法 changeNumber。 BallsContainer 的 child 是 LottoGame(无状态)。 LottoGame 也是一个具有 int ballNumber = 0 属性 和 changeNumber(){ballNumber = 10} 方法的容器。 LottoGame 的 child 被命名为 Ball(无状态),是一个带有 CircleAvatar 和文本(显示数字)和一个 属性 最终 int ballNumber 的堆栈。 现在从主页按钮我写了这样的代码。
var ballsContainer = BallsContainer();// 这是在 class 层 onPressed(){setState(){ballsContainer.changeNumbers();}}
在 BallContainer 中 class changeNumbers(){lottoGame.changeNumber();} // lottoGame 处于 class 级别定义
在 LottoGame 中 class changeNumber(){ballNumber = 10}
当我调用点击按钮方法但 LottoGame class 没有时 rebuild.I 也尝试将 LottoGame 更改为 StatefullWidget 但它也没有 work.Shouldn setState 重建它的所有 child 小部件?我做错了什么?
在我看来你对flutter的使用有点不对,它的诀窍是如果widget没有改变,它就不会重绘。您不需要在 class 字段中存储小部件,而是每次调用小部件构造函数并向其传递必要的参数,只要您传递更改的参数,就会重新绘制依赖它们的小部件