React + Reduxでメモアプリを作成(表示②)

NO IMAGE

準備①からの続きをしていきたいと思います。
https://kazunaka.com/react-redux-memoapp-one/

ファイルを編集

ディレクトリ「src以下のファイルを編集していきます。

actions/index.jsを編集していきます。
メモのアクションを書いていきます。
まずは表示ができるようになるとこまでいきたいと思います。

// アクション定義
export const READ_MEMOS = "READ_MEMOS";

// 一覧取得
export const getMemos = () => ({
	type: READ_MEMOS,
});

続いて、reducers/index.jsを編集していきます。

import { combineReducers } from 'redux';
import { reducer as form } from 'redux-form';
import memos from './memo';

export default combineReducers({ memos, form });

次は、reducers/memo.jsを編集します。

import {
	READ_MEMOS,
} from '../actions';

export default (memos = {}, action) => {
	switch (action.type) {
		case READ_MEMOS:
			return memos;
		default:
			return memos;
	}
};

続いて、index.jsの編集です。

import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import { createStore } from 'redux';
import { Switch, BrowserRouter, Route } from 'react-router-dom';

import reducer from './reducers';
import MemoIndex from './components/memoIndex';
import reportWebVitals from './reportWebVitals';

const store = createStore(reducer);

ReactDOM.render(
	<Provider store={store}>
		<BrowserRouter>
			<Switch>
				<Route exact path='/' component={MemoIndex} />
			</Switch>
		</BrowserRouter>
	</Provider>,
	document.getElementById('root')
);

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();

次にcomponents/memoIndex.jsの編集です。

import React, { Component } from 'react';
import { connect } from 'react-redux';
import { Link } from 'react-router-dom';

import { getMemos } from '../actions';
import _ from 'lodash';

class MemoIndex extends Component {
	render() {
		return (
			<React.Fragment>
				<table>
					<thead>
						<tr>
							<th>タイトル</th>
							<th>メモ</th>
						</tr>
					</thead>
				</table>
			</React.Fragment>
		)
	}
};

const mapStateToProps = state => ({ memos: state.memos });
const mapDispatchToProps = ({ getMemos });
export default connect(mapStateToProps, mapDispatchToProps)(MemoIndex);

アプリを実行

コマンドでアプリを実行しましょう。

$ yarn start

画面が表示されたら成功です。

次は新規作成をしていきます。
https://kazunaka.com/react-redux-memoapp-three/

JavaScriptカテゴリの最新記事