!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
ようこそFlutter野郎どもよ!!!
軽い開発環境でモバイルアプリ開発ができるなんて最高じゃねえか
AndroidもiOSも両方行ける、まさに漢のためのツールだな
https://flutter.dev/
前スレ
Flutterやろうよ!!! 2
https://mevius.5ch.net/test/read.cgi/tech/1611976959/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
Flutterやろうよ!!! 3
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (アウアウアー Sa7f-MJGN)
2021/08/08(日) 20:18:12.79ID:e9M5NaPRa989デフォルトの名無しさん (スフッ Sd33-wjb5)
2022/03/22(火) 20:25:21.61ID:5/WsGxhDd990デフォルトの名無しさん (ワッチョイ b15f-nL3Y)
2022/03/22(火) 23:20:49.18ID:UjWqblhl0 新書まだ?
991デフォルトの名無しさん (ワッチョイ 417d-LN6m)
2022/03/23(水) 00:45:16.84ID:PKuC3Xpv0 final navigateRequestStateProvider =
ChangeNotifierProvider.autoDispose<NavigateRequestState>((ref) => NavigateRequestState());
class CustomNavigator {
/*
『Do not use BuildContexts across async gaps』を出さないために、
魔法を実行するNavigatorのラッパークラス
Notes:
NavigateRequestState.updateWith()をコールして、ページ遷移のリクエストを登録
NavigateRequestState.updateWith()のnotifyListeners()コール後に、refのWidgetが再buildされる
build後に、CustomNavigator._checkNavigateRequestが実行される
_checkNavigateRequestは、NavigateRequestStateにページ遷移のリクエストがあれば実行する
*/
final Key key;
final BuildContext context;
final WidgetRef ref;
NavigateRequestState? state;
CustomNavigator({required this.key, required this.context, required this.ref}) {
// 魔法
state = ref.watch(navigateRequestStateProvider);
WidgetsBinding.instance.addPostFrameCallback((_) => _checkNavigateRequest());
ChangeNotifierProvider.autoDispose<NavigateRequestState>((ref) => NavigateRequestState());
class CustomNavigator {
/*
『Do not use BuildContexts across async gaps』を出さないために、
魔法を実行するNavigatorのラッパークラス
Notes:
NavigateRequestState.updateWith()をコールして、ページ遷移のリクエストを登録
NavigateRequestState.updateWith()のnotifyListeners()コール後に、refのWidgetが再buildされる
build後に、CustomNavigator._checkNavigateRequestが実行される
_checkNavigateRequestは、NavigateRequestStateにページ遷移のリクエストがあれば実行する
*/
final Key key;
final BuildContext context;
final WidgetRef ref;
NavigateRequestState? state;
CustomNavigator({required this.key, required this.context, required this.ref}) {
// 魔法
state = ref.watch(navigateRequestStateProvider);
WidgetsBinding.instance.addPostFrameCallback((_) => _checkNavigateRequest());
992デフォルトの名無しさん (ワッチョイ 417d-LN6m)
2022/03/23(水) 00:45:57.58ID:PKuC3Xpv0 自分はこんな感じで『Do not use BuildContexts across async gaps』を回避した
993デフォルトの名無しさん (ワッチョイ b92f-tpIf)
2022/03/23(水) 11:52:20.73ID:n9fyk9vz0 根本をわかってない感じ
994デフォルトの名無しさん (ワッチョイ 417d-LN6m)
2022/03/23(水) 18:18:13.67ID:PKuC3Xpv0 import 'package:flutter/cupertino.dart';
class CustomNavigator {
static final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
static void pop() {
navigatorKey.currentState?.pop();
}
static void pushNamed({required String nextPagePath}) {
navigatorKey.currentState?.pushNamed(nextPagePath);
}
static void pushReplacementNamed({required String nextPagePath}) {
navigatorKey.currentState?.pushReplacementNamed(nextPagePath);
}
static void pushNamedAndRemoveUntil(
{required String nextPagePath, required routePagePath}) {
navigatorKey.currentState?.pushNamedAndRemoveUntil(nextPagePath, ModalRoute.withName(routePagePath));
}
}
160行の力作が20行に縮んだ…
class CustomNavigator {
static final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
static void pop() {
navigatorKey.currentState?.pop();
}
static void pushNamed({required String nextPagePath}) {
navigatorKey.currentState?.pushNamed(nextPagePath);
}
static void pushReplacementNamed({required String nextPagePath}) {
navigatorKey.currentState?.pushReplacementNamed(nextPagePath);
}
static void pushNamedAndRemoveUntil(
{required String nextPagePath, required routePagePath}) {
navigatorKey.currentState?.pushNamedAndRemoveUntil(nextPagePath, ModalRoute.withName(routePagePath));
}
}
160行の力作が20行に縮んだ…
995デフォルトの名無しさん (ワッチョイ 655f-o4iy)
2022/03/27(日) 01:25:01.24ID:PWZbTKss0 出た!カプチーノ厨w
996デフォルトの名無しさん (ワッチョイ 0d7d-n0rs)
2022/03/27(日) 07:00:20.57ID:0+/JwELe0 CurrentStateの値が古いままページ遷移しようとしてエラーを出すな
結局、最新のコンテキストで常にページ遷移するように、>>991の書き方をするしかなかった
あるいは、非同期処理の完了を待ってページ遷移させる処理の実装を諦めるか
あるいは、StatefulWidgetで全てのコードを書き直すか
結局、最新のコンテキストで常にページ遷移するように、>>991の書き方をするしかなかった
あるいは、非同期処理の完了を待ってページ遷移させる処理の実装を諦めるか
あるいは、StatefulWidgetで全てのコードを書き直すか
997デフォルトの名無しさん (ワッチョイ d92f-UE6D)
2022/03/27(日) 15:41:06.11ID:VOH9Pz/z0 んなことないでしょー
エラーみせて
エラーみせて
998デフォルトの名無しさん (ワッチョイ 0d7d-n0rs)
2022/03/28(月) 01:45:06.69ID:K9Q/GGg50 すみません。自己解決しました。コード上にこんな箇所があった…
SchedulerBinding.instance.addPostFrameCallback((_) {
SchedulerBinding.instance.addPostFrameCallback((_) {
CustomNavigator.pushReplacementNamed( '/sign_in');
}
}
ただ、GlobalKey<NavigatorState>を使うとホットパス以外にも
遷移できてしまう仕様が気になってます
SchedulerBinding.instance.addPostFrameCallback((_) {
SchedulerBinding.instance.addPostFrameCallback((_) {
CustomNavigator.pushReplacementNamed( '/sign_in');
}
}
ただ、GlobalKey<NavigatorState>を使うとホットパス以外にも
遷移できてしまう仕様が気になってます
999デフォルトの名無しさん (ワッチョイ 8101-kIZE)
2022/03/28(月) 07:51:40.41ID:wpFSl1+b0 埋め
1000デフォルトの名無しさん (ワッチョイ 8101-kIZE)
2022/03/28(月) 07:52:04.42ID:wpFSl1+b0 埋め
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 231日 11時間 33分 52秒
新しいスレッドを立ててください。
life time: 231日 11時間 33分 52秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 中国と対話で良い関係つくるのが責任と首相 ★3 [少考さん★]
- 参政党、梅村みずほ参院議員を党ボードメンバーから解任 参議院国会対策委員長の役職も外れる [少考さん★]
- 日本テレビ、国分太一の会見受け回答「『コンプライアンス違反行為があった』ということ以上に公にできない」「答え合わせ難しい」 [Ailuropoda melanoleuca★]
- 生クリームだけの真っ白なクリスマスケーキ 大手メーカーが販売、その理由は…フルーツなしで価格は半額以下に ★2 [おっさん友の会★]
- 人気ユーチューバー青木歌音、中国人に対する悪口投稿の自粛呼びかけ「日本のイメージも悪くなっちゃう」 [爆笑ゴリラ★]
- 〈シカが泣いている…〉奈良が“観光崩壊”危機…外国人観光客は44.5万人、宿泊客単価は3万1千円 [1ゲットロボ★]
- 【悲報】高市、終わるwwwwwwwwwwwwwwwwwww [308389511]
- 【速報】高市「日本はサンフランシスコ平和条約で台湾に関する全ての権利と権限を放棄している」事実上の答弁撤回か [931948549]
- 【速報】高市「日本はサンフランシスコ平和条約で台湾に関する全ての権利と権限を放棄している。台湾の法的地位や認定する立場ではない」 [931948549]
- 【高市悲報】中国「概念だけを述べてるだけだ」党首討論での発言は撤回にあたらないとのこと [115996789]
- 【選挙期間中】国の公共事業を行った業者から寄付、土田議員、萩生田議員、平議員、東京自民【公職選挙法】 [943688309]
- 【画像】ヤリチンは絶ッッッ対"3"を選ぶ東京修学旅行中のJ Kの集合写真見つけちゃいましたwwwwwwwwwwww [904880432]
