AIで知識ゼロからアプリ開発1000時間 #14

#14:props地獄と戦う朝

【ざっくり言うと】

今朝はただの「朝礼ボタンの確認」だけのつもりだったんず。でもな、props(親からもらう変数)とuseState(二重定義)でどえらいバグに見舞われて、コードがまっかっかになったじゃ。状態をどこで持つか、ほんとに大事なんだなって痛感した朝の記録だべ。

…と、その前によ、これが1000時間かげでようやぐ完成させだアプリの画面だ。知識ゼロのおらが、どんげしてここまで作れるようになったが、みんなさ共有したぐてぇな!

ウェブアプリ版

アンドロイド版

propsで地獄見た朝

きょうの朝、ちょこっとだけコード直すつもりでな、TaskManager.jsいじってたんず。朝礼ボタンの動作確認だけだったはずなのに…

"Identifier 'coins' has already been declared"

…なんだばこれ!? すでにcoins定義されてらってさ。


同じ変数、二度は使うな

おら:「全コード渡してるべ?なんでエラー出るんだや?」

AI:「親のApp.jsからもらったcoins、TaskManager.jsでもういっぺ定義したら重なってまうんず。」

おら:「じゃ、TaskManagerの方、使っちゃダメなのが?」

AI:「そうだ。親から渡されたんなら、それを使うだけ。新しくuseStateで定義する必要ねぇのさ。」

ふ〜ん…。わかってるようで、できてなかったんず。


朝礼ボタンの混乱っぷり

さらに朝礼ボタンのonClickでまた迷子に。

onClick={onMorningMeeting}

おら:「え?前はTaskManagerの中でalert出してただけだべ?」

AI:「今度はApp.js側にまとめて、そっちから関数渡してボタン押されたら実行する形にしたんず。」

…いや、どっちにすんのか統一してくれや。混乱してまった。


地雷は全部自分で埋めてた件

今思えば、coinsdailyTasksも、同じ名前のuseStateを親でも子でも作ってたのが悪かったんず。名前が同じでも、定義は一回きりじゃなきゃだめだってことを、ようやく理解したべ。


学んだごど(箇条書きだば)

  • useState親で定義して子に渡す、か、子で完結させるか、どっちかはっきりすべし。
  • 同じ名前でuseState使ったら、エラー出て当然だじゃ。
  • 関数(onClickとか)も、どこで動かすか一貫性持たねば、迷子になるべ。
  • propsの使い方は、設計の肝だべ。ナメたらいかん。

最後に:一貫性、大事だじゃ

小さいミスが、でっけバグになる。今回の件で「設計の一貫性」ってやつが、どれほど大事がって改めて感じたんず。おらの朝は2時間、エラーで真っ赤っかだったけど、そのおかげで今後の設計、少しはまともになるかもしんね。

この連載、同じように迷ってる人の参考になったらうれしいじゃ。誰だって最初はつまずぐもんだべ。おらだって、つまずいてばっかりだじゃ!

●次の記事
AIで知識ゼロからアプリ開発1000時間 #15
(👉#1)

●ホームページ
アプリ制作1000時間、そのあと追加800時間かけて作ったHPも見てほしいべさ

ゲームに見えるかもしんねぇけんども、これ、ホームページなんだべ。アプリ制作1000時間、そのあと追加で800時間、めっちゃしんどがったけんども、そのおかげで色んなことできるようになったべさ。これからもどんどん更新していぐがら、応援よろしく頼むべ!

ちなみに、このHPのコンセプトは「日本人の勤勉さを取り入れで、世界中の人たぢの夢の設定がら到達までを総合サポートすること」なんだべさ。学習×運動×睡眠×栄養×時間、この5つの軸を使っていぐど。おらも今、これを実践中だべ!

んでもってな、このHPを通じて夢を叶えだ人たぢと一緒に、いずれ世界をひっくり返すような仕事をしたいと思ってんだべ!ただの応援で終わりじゃねぇ。ここで鍛えた力で、みんなと一緒にとんでもねぇことを仕掛けていぐ。

一緒にでっかい夢、つかまねぇが?

コメント