为什么计数器变量的值在屏幕上没有变化?

时间:2019-01-24 07:05:19

标签: android flutter

我添加了一个浮动动作按钮和一个用于增加计数器变量值的增量函数,这在浮动按钮的附加功能中被称为。该值在控制台上更改,但在我的应用程序上未更改。您能为我提供解决方案吗?

   $data1 = $session->get('oficina');
        $data2 = $session->get('area');
        $em    = $this->get('doctrine.orm.entity_manager');
        $dql   = "SELECT l FROM AppBundle:Registro a WHERE l.oficina = '$data1' and l.area = '$data2'";
        $list = $em->createQuery($dql);

        $paginator  = $this->get('knp_paginator');
        $pagination = $paginator->paginate(
            $list,
            $request->query->getInt('page', 1)/*page number*/,
            5,/*limit per page*/
            array('defaultSortFieldName' => 'l.id', 'defaultSortDirection' => 'desc')
        );

第5行在控制台上运行,但第13行在我的应用程序上不运行,计数器仅为0。我已经添加了足够的代码供您理解。 ;)

1 个答案:

答案 0 :(得分:1)

每次重新渲染小部件时,您都将计数器重置为0,并且您不使用setState()来更新状态,因此在值更改时Flutter不会重新渲染。 / p>

将其更改为

int counter = 0;
void incrementCounter() {
  setState(() => counter++);
  print("You have pressed the button $counter times.");
}

Widget build(BuildContext context) {
    return new Scaffold( 
       body: new Center(
          child: new Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              new Text("You have pressed the button $counter times.")
            ],
          ),
        ),
      floatingActionButton: new FloatingActionButton(
        onPressed: incrementCounter,
        child: new Icon(Icons.send),
      )
    );
   }