RN中是否有类似componentWillDisapear()
的东西?
我的问题的详细信息:
我有两个屏幕:“主页”和“详细信息”。我的应用程序使用“ firebase_admob”进行广告,而“ firebase_admob”(请参见下面的屏幕截图)只能为整个应用程序呈现固定的横幅。因此,当您转到其他屏幕时,您也可以看到它,但是我仅在主屏幕中需要它。这意味着,当用户导航到“详细信息”时,我必须将其隐藏。怎么做?
注意:当用户离开主屏幕时,我想致电dispose()
。要渲染横幅,您需要在show()
类中调用BannerAd
,而当您需要隐藏时,只需调用dispose。
答案 0 :(得分:1)
下面的代码允许检查页面是否对用户可见:
import 'package:flutter/material.dart';
class TestWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
print('TestWidget: ${ModalRoute.of(context).isCurrent}');
return Container();
}
}
此sample允许检查何时更改了路线。但是您无法获取当前页面名称。
答案 1 :(得分:0)
作为Kostya Vyrodov回答的补充,并针对他的评论“但是您无法获得当前页面名称。”,以下代码段将打印当前页面名称。
removePropertiesFromRevenues(...props: string[]) {
this.revenues = this.revenues.map(r => {
const obj = {};
for (let prop in r) { if (!props.includes(prop) { obj[prop] = r[prop]; } }
return obj;
});
}
通常,最好在页面的initState中使用它来将页面名称保存到全局变量中,以便在应用程序中的其他位置使用。例如,我将它与_firebaseMessaging.configure()方法中的Firebase Cloud Messaging一起使用,以确定特定的导航要求。 如果有人觉得这有用,请投票。