banner
leoking

leoking

前端开发者
tg_channel

Reactのクラスコンポーネントと関数コンポーネントでReduxを使用する方法

開始する前に、Redux と関連する依存関係(redux、react-redux など)が正しくインストールされていること、そしてストア、アクション、およびリデューサが作成されていることを確認してください。React でのストアの使用方法

1. React クラスコンポーネントと Redux#

まず、コンポーネントを Redux に接続するために connect 高階コンポーネントを使用する必要があります。connect の 2 つの主なパラメータは mapStateToProps と mapDispatchToProps です。mapStateToProps は Redux ストアから必要なステートの断片を選択し、それをコンポーネントのプロパティにマッピングするために使用されます。一方、mapDispatchToProps は作成したアクションクリエータとコンポーネントのプロパティを関連付けるために使用されます。以下は簡単な例です:

// まず依存関係をインポートする:
import React from 'react';
import { connect } from 'react-redux';
import { sampleActionCreator } from './actions';

// 次にクラスコンポーネントを作成する:

class SampleComponent extends React.Component {
onButtonClick = () => {
this.props.sampleActionCreator();
};

render() {
const { dataFromReduxStore } = this.props;

return (
  <div>
    <button onClick={this.onButtonClick}>Reduxアクションをトリガーする</button>
    <p>Reduxストアからのデータ:{dataFromReduxStore}</p>
  </div>
);
}
}


// 次にコンポーネントとReduxを接続する:

const mapStateToProps = (state) => ({
dataFromReduxStore: state.sampleReducer.data,
});

const mapDispatchToProps = {
sampleActionCreator,
};

export default connect(mapStateToProps, mapDispatchToProps)(SampleComponent);

2. React 関数コンポーネントと Redux#

関数コンポーネントでは、React Redux が提供する useSelector と useDispatch フックを使用して Redux に接続することができます。

// まず依存関係をインポートする:
import React from 'react';
import { useSelector, useDispatch } from 'react-redux';
import { sampleActionCreator } from './actions';

// 次に関数コンポーネントを作成する:

const SampleComponent = () => {
const dataFromReduxStore = useSelector((state) => state.sampleReducer.data);
const dispatch = useDispatch();

const onButtonClick = () => {
dispatch(sampleActionCreator());
};

return (
<div><button /></div>
Reduxアクションをトリガーする
Reduxストアからのデータ:{dataFromReduxStore}



);
};
export default SampleComponent;

以上が React クラスコンポーネントと関数コンポーネントで Redux を使用する方法です。これらの方法の主な違いは、異なるパターン(クラスコンポーネントでは connect 高階コンポーネントと mapStateToProps/mapDispatchToProps を使用し、関数コンポーネントでは useSelector と useDispatch フック関数を使用)を使用してステートの選択とアクションクリエータの取得機能を実現していることです。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。