我正在使用Flutter(BloC模式)来构建一个小部件,该小部件可以流式传输多个相机源。单击供稿后,它就会显示在主供稿中(想想Google环聊中,正在说话的人的脸在前面和中间显示,而其他人在侧面较小)。
尝试切换所选的供稿时,状态(int
)会产生Bloc
的{{1}}的预期新值;但是,主MapEventToState
小部件不会切换供稿。
我对CamFeed
的这种用法的理解是,当该int更改时,它会返回StatefulWidget
应该重建。相反,似乎什么都没有发生。 BlocBuilder<CamSwitcherBloc, int>
仅在首次创建时以及build()
中一个子级的状态得到更新时才被调用。
我已经通过天文台确认,正如预期的那样,CamFeed
仅存在一个实例。
所以-我是这样认为的:
当我的Bloc内的MapEventToState产生一个新值(selectedCam,在下面的构建器中键入)时,应为我的小部件调用CamSwitcherBloc
。
如果是正确的话,那么任何关于继续我的狩猎的建议将不胜感激。
谢谢!
build()
答案 0 :(得分:0)
结果证明这与CamFeed小部件有关。切换后,它确实是在订阅新的供稿,但并未取消旧的供稿。这是CamFeed运作方式的症状,对其他读者来说可能不太有用。
可能与其他人有关:
在这种情况下,虽然CamSwitcherBloc
并未重建(尽管我希望这样做),但实际上它的子级(Camfeed
)却符合预期。