自由拡張

最後は自分で決める

ここまで、作るものはこちらが決めてきました。最後の1つは自分で決めます。fleama に足りないと思う機能を、1つ選んで作ります。

迷ったら次の3つから選んでください。どれも fleama にまだ無いものです。

  • いいね — 気になる商品に印を付け、印の付いたものだけを表示する
  • 並び替え — 価格の安い順と、出品された順を切り替える
  • 表示の切り替え — 一覧をカードで見るか、1行ずつで見るかを切り替える

何を作っても形は同じ

作るものは違っても、中身の形は同じです。状態が1つあり、押すと状態が変わり、変わった状態で表示が変わる。このコースで何度も書いてきた形です。

const [cheapFirst, setCheapFirst] = useState(false); const shown = cheapFirst ? [...items].sort((a, b) => a.price - b.price) : items;

並び替えで [...items] と写しを作っているのは、sort が元の配列を並べ替えてしまうからです。state に入っている配列を直に並べ替えると、React から見て中身が変わったことにならず、画面が更新されないことがあります。

新しい知識は要りません。今日やるのは「自分で決めたものを、知っている形に当てはめる」練習です。実務で新しい機能を任されたときにやるのも、だいたいこれです。

自動判定が見るところ

自由に作ったものを機械が採点するので、判定は切り替えが本当に効いているかだけを見ます。何を作るかは自由ですが、次の入れ物は共通で使ってください。

  • extra-title に、作った機能の名前を出す
  • extra-button を押すと状態が変わる
  • extra-state に、いまオンかオフかを出す
  • もう一度押すと、オフに戻る

押しっぱなしで戻らないもの、たとえば一度きりの並び替えは通りません。戻せないということは、状態を持っていないということだからです。一覧の見え方をどう変えるかは自由です。

演習

機能を1つ選び、オンとオフを切り替えられるようにします。

ヒント

App.tsx
App.tsx
プレビュー

できているか

  • 一覧が壊れずに出ている
  • 作った機能に名前が付いている
  • 切り替えるボタンがある
  • 最初はオフになっている
  • 1回押すとオンになる
  • もう1回押すとオフに戻る