1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

初心者 Flutter x MySQL8 に挑戦する 21 with mysql_client

Last updated at Posted at 2022-08-30

重複を回避、はできないままだけど 

 今日はペライチの長〜いfileを脱却したい。

 最初にトライしたのは、mysql1と同じ【接続】【表示】の2枚方式。ところが、接続をうまく独立させられない。あっちが赤くなったり、こっちが赤くなったり、切りがない。たぶん、用語が微妙に違う。

 ほかに方法はないか? 

 で、用途別に分けることにした。つまりサンプルに含まれる【変更】【追加】【選択】、この3つが今は【接続】の後ろにずらずら並んでいる。これを3つのfileに分ける。残念だけど、それぞれの頭には、全く同じ【接続】の記述をつけている。重複も甚だしいけど、まあ、仕方がない。 

 具体的には、こんな手順で作業した。まあ、笑ってやってください。

  • ペライチmain.dartを複製して四枚のfileをつく。
  • ファイルを選択するためのフロントページを作る。
  • main.dartのMyHomepage以降を削除して、フロントページに遷移する。
  • 複製したfileの一枚を、【変更】ページとして、runApp等の部分と【追加】【選択】の部分を削除する。
  • 同様に【追加】ページから【変更】と【選択】を、【選択】ページから【追加】【変更】を削除する。
  • フロントページから、各ページに遷移するボタンを作る。

 Flutterを始めて一年、さすがにページ遷移は迷わずできるようになった。

 よし、やってみよう。 debug、行け。 

 なんもデザインしていないので、なぜか真っ黒な画面に緑の小さな文字で【変更】【追加】【選択】のボタンが並んでいる。 よしよし。 

 まずは【変更】ページに移動。フローティングアクションボタンを押す。何か表示させるようにはなってないので、何も変わらないが、consoleには変更の表示がある。SequelAceで確認すると、ちゃんと変更されている。 よしよし。

ていうか、連打してない、一発で行った。これ、作業を1つに絞った効果なのかな。

 いったん戻って、今度は【追加】ページに移動。こちらも即、反応して、新しいユーザーが追加された。 よしよし。

 また戻って、【選択】ページ。今回はユーザの名前が表示されるはず。 

 行け! 出た!!!

 名前以外のものも出したい。Eメール出そう。Eメールの表示欄を作る。で、どうすればいい。? 

    name = row.colAt(0)!;
    email = row.colAt(1)!;

 これでどうでしょう。 あら、怒られた。(1)なんてないよと。 

 ああ、そうだ、名前だけ取ってたんだわ。じゃあ、全部取ってこよう。 

 お、出た。でも、変。え・・・っと、nameのところにidが、emailに名前が入ってる。なるほど、じゃ、これでどうでしょう。 

    name = row.colAt(1)!;
    email = row.colAt(2)!;

 よっ〜〜しゃ!、名前とEメール、出ました!! 

 でも、今、表示できてるのは、「最後の1行」だけ。consoleには全部プリントされているんんだから、次は全部、表示したい。 

スクリーンショット 2022-08-30 16.31.57.png

明日こそは、リスト表示に挑戦するぞ〜。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?