【问题标题】:How to prevent setState((){}); in flutter?如何防止 setState((){});在颤抖?
【发布时间】:2020-12-13 07:01:49
【问题描述】:

` setState(() { //这里如何防止设置状态 评级 = aaa; });

onChanged: (aaa) {
   setState(() {
    rating = aaa;
   });
},`

【问题讨论】:

    标签: flutter-layout setstate flutter-form-builder


    【解决方案1】:

    您可以使用 ValueListenableBuilder 代替 setState。 例如:如果 rating 是 int 类型。所以,你可以创建一个 int 类型的 ValueNoifier 并监听它的变化。

     ValueNotifier<int> rating = ValueNotifier<int>(0);
    
    //......change the value of rating in the onChanged:
    
     onChanged(aaa){
      rating.value = aaa;
     }
    
    // .... Wrap your Widget with Listenable builder to listen to the change in rating.
    
    ValueListenableBuilder(
    valueListenable: rating,
    builder : (context, value, child) => SomeWidget(......)
    )
    

    【讨论】:

    猜你喜欢
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多