【问题标题】:How to trigger setState() of any other Stateful Class?如何触发任何其他有状态类的 setState()?
【发布时间】:2018-06-01 12:25:12
【问题描述】:

我有两个状态状态,ABCState 和 XYZState,我想从 XYZState 调用 ABCState 上的setState(),以便触发 ABCState 的重绘

class ABCState extends State<ABC> {

}

& 

Class XYZState extends State<XYZ> {
    // Call .setState() of ABCState
}

我试图玩弄钥匙,但不知何故无法这样做。感谢您的帮助

【问题讨论】:

  • 你为什么要这样做?用例?
  • @HemanthRaj 我的用例是由于某些用户操作而重绘所有小部件。
  • 我想在调用setState 时,flutter 只会重绘那些状态发生变化的小部件。你为什么要重绘所有的小部件。您在渲染过程中增加了负担。
  • 我觉得this很相似。

标签: flutter


【解决方案1】:

这是个坏主意。 但如果你想这样做,你可以:

  • 使用GlobalKey,它允许获取状态/上下文/小部件
  • 使用BuildContext 所需的有状态小部件的子级。使用context.ancestorStateOfType(const TypeMatcher&lt;MyStatefulWidget&gt;());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    相关资源
    最近更新 更多