【週刊ドットインストール】 256timesのクラスを準備中、Ruby/Ruby on Railsのロードマップページを追加
48行目で decrementMenu 関数を以下のように実装しています。
decrementMenu
const decrementMenu = (menuId) => { const newCounts = [...counts]; // (1) newCounts[menuId]--; // (2) setCounts(newCounts); };
上記では配列 counts のコピーとして newCounts を作ってから(1)、 newCounts 内のクリックされた要素を -1 しています(2)。
counts
newCounts
ですが、新しく newCounts を作る必要性を感じなかったので、counts の要素に対して直接 -1 して以下のように書いたのですが、うまく動作しませんでした。
const decrementMenu = (menuId) => { counts[menuId]--; setCounts(counts); };
上記ではダメなことは確認したのですが、なぜ newCounts を作らなければダメなのか理由がわかりません。 何か基本的なことをわかっていない気がするのですが、理由を解説して頂けないでしょうか。
ドットインストールは、3分動画でマスターできるプログラミング学習サービスです。
3分で気軽に学習でき、スマートフォンからも視聴可能です。ホームページやWebサービスの制作を通して、実践的にプログラミングを学べます。
他にも、ゲーム制作やデータ分析・機械学習・AIに使われる言語まで幅広くカバー。学びたい分野のレッスンがきっと見つかります。
この回答を見るにはプレミアムプランへの登録が必要です
48行目で
decrementMenu関数を以下のように実装しています。上記では配列
countsのコピーとしてnewCountsを作ってから(1)、newCounts内のクリックされた要素を -1 しています(2)。ですが、新しく
newCountsを作る必要性を感じなかったので、countsの要素に対して直接 -1 して以下のように書いたのですが、うまく動作しませんでした。上記ではダメなことは確認したのですが、なぜ
newCountsを作らなければダメなのか理由がわかりません。何か基本的なことをわかっていない気がするのですが、理由を解説して頂けないでしょうか。