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

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

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

Reduxは、JavaScriptアプリケーションの状態を管理するためのオープンソースライブラリです。ReactやAngularで一般的にユーザーインターフェイスの構築に利用されます。

JavaScript

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

React.js

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

Q&A

解決済

1回答

1797閲覧

reduxのmapStateToPropsとmapDispatchToPropsを同名のキーでネストする方法

Newbi

総合スコア163

Redux

Reduxは、JavaScriptアプリケーションの状態を管理するためのオープンソースライブラリです。ReactやAngularで一般的にユーザーインターフェイスの構築に利用されます。

JavaScript

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

React.js

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

0グッド

1クリップ

投稿2019/08/31 07:14

お世話になっております。

現在、 reduxを学習している最中です。
containersに書くmapStateToPropsとmapDispatchToPropsについて、 この2つの中身を同名のキーでネストしたいのですが、 おそらくmapDispatchToPropsに上書きされているようで、 mapStateToPropsの値が消えてしまいます。

以下のような感じにしたいのですが、 何か方法をご存知の方はいらっしゃいませんでしょうか;;
Providerのstoreに{ { store: store } }みたいに渡したりもしたのですが、 エラーに怒られました。

javascript

1const mapStateToProps = state => ({ 2 store: { 3 state: { 4 items: state.items 5 } 6 } 7}) 8 9const mapDispatchToProps = dispatch => ({ 10 store: { 11 dispatch: { 12 items: { 13 add: text => dispatch(Items.add(text)) 14 } 15 } 16 } 17})

⇣ こんな感じで呼び出したいです。

javascript

1// state 2this.props.store.state.items 3 4// dispatch 5this.props.store.dispatch.items.add('aiueo')

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんにちは

mapStateToPropsmapDispatchToProps は以下

javascript

1const mapStateToProps = state => ({ 2 items: state.items 3}) 4 5const mapDispatchToProps = dispatch => ({ 6 items: { 7 add: text => dispatch(Items.add(text)) 8 } 9})

のように、ネストさせないで書いておき、以下の mergeProps

javascript

1const mergeProps = (stateProps, dispatchProps) => { 2 return { 3 store: { 4 state: stateProps, 5 dispatch: dispatchProps 6 } 7 } 8}

を、connect の第3引数として渡せばよいかと思います。

例えば、App コンポーネントに connect させるのであれば、以下です。

javascript

1export default connect(mapStateToProps, mapDispatchToProps, mergeProps)(App)

以上、参考になれば幸いです。

投稿2019/08/31 10:35

jun68ykt

総合スコア9058

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

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

Newbi

2019/08/31 13:09

ありがとうございます!! mergePropsの使い方がよく分かってなかったのですが、 この使い方と公式を読み直してようやく分かってきました! 他にもいくつか分からないところがあるので、 公式をしっかり読み直したいと思います!
jun68ykt

2019/08/31 13:41

どういたしまして。 > ようやく分かってきました! とのことで、よかったです ????
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問