import {ActionNames, ActionType} from "../Actions/CounterAction";
export interface IState {
num : number
}
const initialState : IState = {num: 0};
const CounterReducer = (state : IState = initialState , action : ActionType): IState => {
switch (action.type) {
case ActionNames.Increment:
// 値が変わらない場合などはここでミスってる場合が多いから注意。
return {num : state.num + 1};
case ActionNames.Decrement:
return {num : state.num - 1};
default:
return state;
}
};
export default CounterReducer;
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
Source収録記事
この snippet は記事の「各ソースコード / Reducer」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。
同じ記事から
5 件import {Action} from 'redux' export enum ActionNames{ Increment = 'inc',未収録
Action
#471a1378c67a
import {combineReducers,createStore,Action} from 'redux' import CounterReducer, {IState} from "../Reducers/CounterReducer"; import {ActionType} from "../Actions/CounterAction";未収録
Store
#c018959893e8
import {ReduxAction, ReduxState} from "../Store/store"; import {DecrementAmount, IncrementAmount} from "../Actions/CounterAction"; import {connect} from "react-redux"; import {Dispatch} from "react";未収録
Container
#22309cd4a543
import React from "react"; import {IState} from "../Reducers/CounterReducer"; import {ActionDispather} from "./Container";未収録
Component
#038f1a12561a
import React from 'react'; import ReactDOM from 'react-dom'; import * as serviceWorker from './serviceWorker'; import {Provider} from "react-redux";未収録
Index.tsx
#e82df7884099
