我想解决的问题: 我使用 GoRouter 的应用程序需要能够从 main() 内路由到命名路由。由于大多数路由都是“context.go”形式,因此我无法在 main 中执行此操作。
背景
我的应用程序使用 GoRouter。GetX 让我轻松定义命名路由并从 main() 传递参数,这非常完美。
然而,GetX 和 GoRouter 最终给我带来了问题。GoRouter 最终在应用程序的其他部分将没有上下文。
如果有一种方法可以让它们简单地共存,我会对此持开放态度。
我使用了 GetIt 包的服务定位器模式来与 navigatorKey 关联。当我测试它时它会起作用 - 但这涉及创建两个 MaterialApp。
然而,这个应用程序使用GoRouter,它似乎没有使用navigatorKey。
我想从 main() 内部转到特定的路线。服务定位器模式似乎适用于 GoRouter,就像适用于 MaterialApp 的 Navigator 2.0 一样——但我找不到如何执行此操作的示例。
更详细的上下文:
这是我目前在 main() 中的内容。
你可以看到我面临的关键挑战是在 main 中传递数据参数的监听器(我从第三方 SDK 得到这个——我不需要它在 main 中,但无论如何它都需要监听应用程序的状态)。
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
FFAppState(); // Initialize FFAppState
GetSocial.addOnInitializedListener(() => {
// GetSocial SDK is ready to use
});
setupLocator();
runApp(MyApp());
locator<LandingPageData>().referralID = "defaultReferralID";
registerListeners();
} …Run Code Online (Sandbox Code Playgroud) 我有几个记录有几个属性(A,B,C,D).
我希望能够找到哪个记录具有给定属性的更高值,例如D.
我怎么做?
即使在我的 Podfile 中将 Bitcode 设置为 No 后,我也会收到以下错误。这种情况发生在不同的 Xcode 中,最高版本为 14.0(此时我收到签名错误,这也没有意义,因为我已经在所有目标上建立了开发团队):
错误(Xcode):'/Users/builder/Library/Developer/Xcode/DerivedData/Runner-edaimyiflreloheqntgnhkmwcclv/Build/Intermediates.noindex/ArchiveIntermediates/Runner/BuildProductsPath/Release-iphoneos/PromisesObjC/FBLPromises.framework/FBLPromises'不包含位码。您必须在启用位码(Xcode 设置 ENABLE_BITCODE)的情况下重建它,从供应商处获取更新的库,或禁用该目标的位码。文件“/Users/builder/Library/Developer/Xcode/DerivedData/Runner-edaimyiflreloheqntgnhkmwcclv/Build/Intermediates.noindex/ArchiveIntermediates/Runner/BuildProductsPath/Release-iphoneos/PromisesObjC/FBLPromises.framework/FBLPromises”架构arm64
当我将启用位码设置为“是”时,我收到其他错误......并且看起来如此,大多数人建议设置为“否”。
对此有何想法?它似乎是特定于这个特定框架的。