如何在单击“返回”按钮后修复ListView上的重复错误?

问题描述 投票:0回答:1

enter image description here

只有在单击后退按钮后才会发生重复。

我在github上传了完整的listview代码。 listview code

dart flutter flutter-layout
1个回答
0
投票

看起来

Widget createListView(BuildContext context, AsyncSnapshot snapshot) {

// ... 

      children: List.generate(values.length, (index) {

长度不对。

请注意,您的构建方法可以随时被调用(当您导航时,它将被调用以确保)。

因此你的

getRegister1() 

多次调用,因此您需要更多地研究此方法,因为未提供HelperDatabase1背后的代码。

(也许这是你的问题......

var catLocal = (await HelperDatabase1().displayDefCatRelation())
var defCatLocal = (await HelperDatabase1().display()) +

cat.add(catLocal[i].c);  // maybe this actually saves in your db/cache

但我不能确定它)


你应该研究的另一件事是你的getRegister1()应该是“以前获得的”。从flutter docs检查这个snipper。

FutureBuilder<String>(
  future: _calculation, // a previously-obtained Future<String> or null
  builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
    switch (snapshot.connectionState) {
      case ConnectionState.none:
        return Text('Press button to start.');
      case ConnectionState.active:
      case ConnectionState.waiting:
        return Text('Awaiting result...');
      case ConnectionState.done:
        if (snapshot.hasError)
          return Text('Error: ${snapshot.error}');
        return Text('Result: ${snapshot.data}');
    }
    return null; // unreachable
  },
)
© www.soinside.com 2019 - 2024. All rights reserved.