我有以下设置:
MaterialApp(home:SplashScreen)
SplashScreen(
///do some auth checks then
Navigator.of(context).push( MaterialPageRoute(
builder: (_) => StateInheritedWidget(
user: userData,
child: HomePage(),
)))
)
然后在我HomePage
的FAB中,我推了一条新路线。这条新路线无法访问我继承的窗口小部件的上下文。
是不可能InheritedWidget
在新的路线中获得上下文的,还是有解决此问题的方法?
更新资料
这是我的MaterialApp的构建器属性
builder: (context,child){
///Doing some auth stuff here
return new StateInheritedWidget(
user: userData,
child: userData==null?const SplashScreen(child: const LoginPage(),):
const SplashScreen(child: const HomePage(),),
);
},
我的SplashScreen
构建方法:
return !_load? new Scaffold(
body: new Center(
child: new Text('Splash'),
),
):this.widget.child;
这些是我得到的错误。
第一个似乎与Drawer
我的中的有关HomePage
:
I/flutter (12688): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter (12688): The following assertion was thrown building Tooltip("Open navigation menu", vertical offset: 24.0,
I/flutter (12688): position: below, dirty, state: _TooltipState#44ae9(ticker inactive)):
I/flutter (12688): No Overlay widget found.
I/flutter (12688): Tooltip widgets require an Overlay widget ancestor for correct operation.
I/flutter (12688): The most common way to add an Overlay to an application is to include a MaterialApp or Navigator
I/flutter (12688): widget in the runApp() call.
I/flutter (12688): The specific widget that failed to find an overlay was:
I/flutter (12688): Tooltip("Open navigation menu", vertical offset: 24.0, position: below)
I/flutter (12688):
当我单击FAB(Navigator.push)时出现第二个异常
I/flutter (12688): Another exception was thrown: Navigator operation requested with a context that does not include a Navigator.
不行。这是不可能的(或至少不建议这样做)。
问题在于您的InheritedWidget不应位于路线 内 ,而应位于路线 上方 。通常在上面MaterialApp
但是我希望我的身份验证能够推送登录屏幕,我不能放在上面
MaterialApp
!
这就是为什么我说usually
。:D
身份验证是这些例外之一。您可能希望身份验证层访问导航器。但是仍然要与 所有 路由共享该身份验证层。
这是使用的有用属性的地方MaterialApp
:builder
通过Builder时,将用于在路线上方插入任何类型的小部件。但仍要紧追其后,Navigator
以便您仍然可以在需要时推新路线。
最后,您将拥有
new MaterialApp(
builder: (context, child) {
return new MyAuthent(child: child);
},
...
// home: SplashSceen ?
);
这很可能需要您进行重构。但这是实现此目标的正确方法。
我遇到了使用文档签名 API 的第一个障碍,需要一些帮助。 我将docusignrestapi集合导入到Postman中。我设置了iKey、iSec、encodedKeys和codeFromUrl变量。 当尝试发送'01-授权代码授予访问令牌'post API时,我每次都得到以下响应。 我尝试从Postman中删除所有内容,包括环境,并从DocuSign中删除该应用程序,然后重新开始,以便我的所有
我是PHP新手,我的任务是使用API从我的客户端获取数据..但问题是,即使在研究和尝试之后,我也无法理解这个API.. 我的客户给了我API的详细信息 这些只是一个虚拟值。我的客户还说,值应该是登录api的令牌响应,前面加上“Bearer”一词 做完研究后..我尝试了此代码,但浏览器上没有显示任何内容。我能做的任何想法或建议.. 我需要把这个放在纽扣上吗?抱歉,如果我在这里问,已经一天了,我不能解
获取访问攻击是网络渗透测试的第二部分。 在本节中,我们将连接到网络,这将使我们能够发起更强大的攻击并获得更准确的信息。 如果网络不使用加密,我们可以连接到它并嗅出未加密的数据。 如果网络是有线的,我们可以使用电缆并连接到它,可能通过更改我们的MAC地址。唯一的问题是攻击目标使用加密,如WEP,WPA,WPA2。 如果我们确实遇到加密数据,我们需要知道解密它的密钥,这在本章将会学习和实践。 如果网络
我有一些测试(我没有编写它们,我正在维护它们)使用spring ContextConfiguration注释来提供应用程序上下文: 总之,有几个问题。我不太熟悉spring自定义上下文位置,这些位置不指定file:/或classpath:/。这是什么意思?这个测试类路径上有很多同名的资源。都上膛了吗?如果不是,Spring如何知道要加载哪个? 第二,有没有一种方法可以通过编程方式访问以这种方式连接
我有一个包含注入和强制(最终)字段的类。对于common,我可以使用micronatBean factory . get bean(type)或BeanContext.getBean(type)从上下文中获取bean,但是在这种情况下,我必须传递类型和参数。 我为此创建了简单的测试 对象(bean)代码 当我运行它时,我收到异常 io . micro naut . context . except
好的,这是我目前的build.gradle: 这就是配置。格拉德尔: 问题是:为什么我可以从config.gradle.访问howManyTables任务,但不能访问定义的变量?我想创建具有预定义值的自定义config.gradle。然后在我的Android应用程序中使用它们作为变量。(他们,根据这些数据建立了我的逻辑。无论如何,我希望这个问题很清楚;)有什么想法吗?
我正在尝试导入一个安全证书,以便按照此处的步骤向服务器发送请求。 http://www.grim.se/guide/jre-cert 我在Windows命令提示符下输入以下命令。 然后,系统会提示我输入密码,我将其输入为“changeit”。 然后这就发生了- 由于访问被拒绝,我假设我没有对JRE的写入权限。我怎么能得到这个?非常感谢。
X1.6.0新增 sp_get_asset_upload_path($file,$style='') 功能: 转化数据库保存的文件路径,为可以访问的url 参数: $file: 数据库保存的文件路径 $style:样式(七牛) 返回: 类型string,文件可以访问的url 使用: $url = sp_get_asset_upload_path('portal/23232.png');