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 に挑戦する 20 with mysql_client

Last updated at Posted at 2022-08-29

Minimum Step

  • 一昨日は、動いて、その様子がconsoleに表示された。
  • 昨日は、UIと接続して、ちゃんと動いたけど、表示はやっぱりconsoleだけだった。
  • 今日の目標は、取得したデータをUIに表示。

 ほんとは一気にリスト表示まで持っていきたかったけれども、そこ欲張ると、また、何が問題か判別するのが複雑になるので、ぐっとがまんして最低限の変更だけ加える。 

 見本がない。ほんとにこれは困る。一番近い見本は、やっぱりメンターさんにつくってもらったmysql1のコードなので、それをじっくり読んでまずこんなふうに書いてみた。

    for (final row in result.rows) {
      setState((){
        name = row[0];
      });

 すると[ ]にinidifinedだって、クレームがつく。え〜、ふつうに配列じゃん、と思うが、エラーでは走らないので、どうにかしなきゃならない。 
 
 mysql_clientのサンプルコードでprint()になっている箇所をしげしげ眺めると、例えばこんなのがある。 

print(row.colAt(0));

 お、もしや配列は( )なの? で、こうする。

    for (final row in result.rows) {
      setState((){
        name = row.colAt(0);
      });

 うーむ、まだ真っ赤だ。でもマウスを載せてみると、

  • 「null check (!) 」と出る。

 え、そうなのかい。

ということで最終案

    for (final row in result.rows) {
      setState((){
        name = row.colAt(0)!;
      });

エラーはなくなりました。 では、debug。 

 行け! 
 
 ウンとも、スンとも・・・だけど、これ、もう慣れてきた。やたら遅いということだ。 

 行け! 

 はい、今度は行きましたよ、そして無事、

新規登録者の名前がsimulatorの中央に表示されました!

 でも、この「遅い」をどうにかしなくちゃね。「早くする」はとりあえずムリそうなので、「ちょっと待ってねグルグルをつける」かな。userが連打したくなるのを抑えないと。いや、私が、か笑

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?