演習13 React Nativeで、生のreduxで、actionありのreducerを作成し、ActionCreator、dispatchを定義する(途中)

ここでは、おなじみのカウンター(1ずつ増える機能のみ)を、わざわざ生のreduxを使って作ろうという試みです。

[今は、Reactでは、reduxは非推奨になっており、redux-toolkitが推奨になっているのに、わざわざという面はあるでしょうが、本質を学ぶためにはやはり必要ということでやっていきます]

 

まずは、通常の作り方をみていきます。(未掲載)

ボタンを押すと、ボタンのonPressプロパティ定義されている関数が実行されるようになっています。この場合は、ほかのコンポーネントのボタンも全くおなじ動作をさせる場合、これは、あくまで、ボタンという部品に依存した処理なので、それぞれのコンポーネント内でいちいち同じ記述をしないといけないことになります。

コンポーネント数が少なければ関係ないですが、多くなればなるほど、同じ処理をする場合が増えてくるのではないでしょうか?

さて、本題です。

⓪ 表示画面の作成です。

 

① Action と ActionCreator関数を作成します。

 一つのファイルで作成してみます。

 (プロジェクト名)/ redux /actions/ index.js

 

② Reducerの作成

 

 Reducerの役割は、以下の3つです。

 a. 唯一、stateを変更できる

   b.  stateの変更内容をあらかじめ場合分けしておける

   c. Javaでいうところのリスナーの機能を有する(JavaでいうActionEventが、JavaScriptのActionにあたります)

 

③ mapStateToProps、mapDispatchToPropsの定義と、App.jsとの接続

 なお、通常はContainerという役割をつとめるコンポーネントを作成して、redux関連処理はそちらに任せ、App.jsは表示に専念させるが通例ですが、ここでは、説明上わかりやすくするために、App.jsに両方の役割をさせます。

 

このような感じでやろうとおもってやっていたのですが、2023/10/1現在、connect関数が効かないようになっているので、おとなしくredux-toolkitへ移行します。

 

redux-toolkitを通しで初めてするなら、このYoutube動画です。

【Redux入門】初学者でも理解できるReduxの仕組みを解説します!(Redux Toolkitを使用) - YouTube