gpt4 book ai didi

flutter - 如果我使用无状态小部件,我应该关闭 Streams 吗?

转载 作者:行者123 更新时间:2023-12-03 03:04:57 25 4
gpt4 key购买 nike

我做了一个使用 Streams 的小型无状态小部件。我读过我总是 应该关闭 Streams 以防止内存泄漏。但是无状态小部件没有 dispose()方法。

那我该怎么办?不要在无状态中使用流?或者没关系?

这是我的代码:

class HomePage extends StatelessWidget {
Bloc _bloc = Bloc();

@override
Widget build(BuildContext context)
{
return Scaffold(
appBar: AppBar(),
body: Container(
child:
StreamBuilder(
stream: _bloc.counter,
initialData: 0,
builder: (BuildContext context, AsyncSnapshot<int> _snapshot)
{
return Column(
children: <Widget>[
Text("Pressed: ${_snapshot.data}"),
RaisedButton(child: Text("inc"), onPressed: () => { _bloc.eventSink.add(IncrementEvent()) },),
RaisedButton(child: Text("dec"), onPressed: () => { _bloc.eventSink.add(DecrementEvent()) },)
],
);
}

)

),
);

}

}

我的代码基于来自 here 的示例.

如果内存泄漏,请解释它会如何?每次点击都会创建新对象吗?或者是什么?

最佳答案

在这种情况下,您不能使用 StatelessWidget ,否则你会出现内存泄漏并可能丢失你的状态。

将您的小部件转换为 StatefulWidget并妥善处置您的对象。

关于flutter - 如果我使用无状态小部件,我应该关闭 Streams 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58117568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com