store を作る

- store の準備

https://codesandbox.io/s/0q54o9lxw0

以下を dependencies に追加する

  • redux

  • react-redux

  • redux-thunk

index.js

import React from "react";
import { render } from "react-dom";

import App from "./App";

import { createStore } from "redux";

import { Provider } from "react-redux";

// まだ rootReducer がないのでエラーになる
const store = createStore(rootReducer);

render(
  <Provider store={store}>
    <App />
  </Provider>,
  document.getElementById("root")
);

App.js

import React from "react";

const App = () => {
  return <div>App</div>;
};

export default App;

- reducer の作成

https://codesandbox.io/s/mq63n3m9oj

reducers/imageUrls.js

取得した画像用URLのための reducer

const initialState = [1, 2, 3, 4, 5];

const imageUrls = (state = initialState, action) => {
  switch (action.type) {
    case "RECEIVE_DATA":
      return "data";

    default:
      return state;
  }
};

export default imageUrls;

reducers/index.js

複数の reducer を combineReducers でまとめ上げるためのファイル

import { combineReducers } from "redux";

import imageUrls from "./imageUrls";

export default combineReducers({ imageUrls });

index.js

combineReducers でまとめ上げた reducer を import して、createStore に与える

import rootReducer from "./reducers";
const store = createStore(rootReducer);

// 正常に動いているか確認
console.log(store.getState());

Last updated