質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

0回答

411閲覧

Reactを用いたデータ設計?考え方について教えて下さい

minaraiegineer

総合スコア1

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2020/06/29 08:25

編集2020/06/29 08:28

現在create-react-app環境で簡単なショッピングサイト(アイテム一覧表示、カートへ追加、合計金額の表示)を作ってますが、親コンポーネントの複数要素あるstateを子コンポーネントで個別に変更することができず参っています。

以下のdataset.jsに登録されているitemデータを取得し、各々を表示、値の変更がしたいのですが、うまくいきません。
Reactオンリーでは実装が難しいのか、データ設計の時点で駄目なのか、どうすればよいかご享受願います。
具体的にやりたいことと、うまくいかないことは下に記述します。

やりたいこと(◯はできてます)

  1. Reactのみの使用(reduxやdbは使わない)
  2. 各itemの取得と表示◯(mapを使い子コンポーネントに値を渡しreturnしてます)
  3. 各itemがカートに入れられたかどうかを判定する✗(defaultDatasetのaddedCartのtrue/falseを切り替えたい)
  4. カート画面でに追加されたitemのみを表示する✗
  5. カートに追加されたitemの個数と金額をかけ合わせ合計を出す✗(3,4ができればわかる気がします)

私の考えとしてはdefaultDatasetを親コンポーネント(App.jsx)のstateで管理。
子コンポーネント(Items.jsx, Item.jsx)で表示、addedCartやcartCountの値の変更。
子コンポーネント(Cart.jsx)で(App.jsx)のstateを取得しカートに追加されたアイテムと合計金額を表示する。
ということがしたいのですが、やりたいこと3の個別のitemオブジェクトのstateの変更ができません。

javascript

1const dataset = { 2 item: [ 3 { 4 id: 1, 5 name: "スポンジボブソファ", 6 img: bobImg, 7 description: "この椅子を設置したならば気が狂い眠れないでしょう…", 8 price: 9800, 9 // カートに追加されたかどうか 10 addedCart: false, 11 // カートに追加された数 12 cartCount: 0, 13 }, 14 { 15 id: 2, 16 name: "チャッキー", 17 img: chukyImg, 18 description: "Hi Dee Hoo!呪いの挨拶が聞こえたらオワリ", 19 price: 5000, 20 addedCart: false, 21 cartCount: 0, 22 }, 23 ], 24} 25 26//これらのオブジェクトが12個程あります

src/App.jsx, src/components/Main.jsx, src/components/Items.jsx, src/components/Item.jsx, src/components/Cart.jsx, src/dataset.jsx これらのファイルで上記のやりたいことに挑戦しております
実際のソース

質問の意図がわかりにくく面倒な質問かと思われますが、どなたか考え方や解決策・方向性を教えて下さい…。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問