Skip to content

Commit a8411f5

Browse files
committed
redux implemented
1 parent 7dc43b6 commit a8411f5

File tree

6 files changed

+78
-10
lines changed

6 files changed

+78
-10
lines changed

23-redux-state/a-application-state-redux/src/App.js

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,11 @@
11
import React, { Component } from 'react';
2-
import logo from './logo.svg';
2+
import Form from './components/user/Form';
33
import './App.css';
44

55
class App extends Component {
66
render() {
77
return (
8-
<div className="App">
9-
<header className="App-header">
10-
<img src={logo} className="App-logo" alt="logo" />
11-
<h1 className="App-title">Welcome to React</h1>
12-
</header>
13-
<p className="App-intro">
14-
To get started, edit <code>src/App.js</code> and save to reload.
15-
</p>
16-
</div>
8+
<Form/>
179
);
1810
}
1911
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import {
2+
UPDATE_USER, updateUser
3+
} from './user';
4+
5+
export {
6+
UPDATE_USER, updateUser
7+
};
8+
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import React from 'react';
2+
3+
const renderField = (props, name, label = name.substr(0, 1).toUpperCase() + name.substr(1)) => {
4+
return (
5+
<div>
6+
<label>
7+
{label}
8+
<input
9+
type="text"
10+
name={name}
11+
value={props[ name ]}
12+
onChange={props.onFieldChange}
13+
/>
14+
</label>
15+
</div>
16+
);
17+
};
18+
19+
const Form = (props) => {
20+
return (
21+
<form>
22+
<div>ID: {props.id}</div>
23+
{ renderField(props, 'name') }
24+
{ renderField(props, 'email') }
25+
{ renderField(props, 'phone', 'Phone Number') }
26+
{ renderField(props, 'company') }
27+
{ renderField(props, 'department') }
28+
{ renderField(props, 'title') }
29+
</form>
30+
);
31+
};
32+
33+
export default Form;
34+

23-redux-state/a-application-state-redux/src/components/user/Update.js

Whitespace-only changes.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import { UPDATE_USER } from '../actions';
2+
3+
const DEFAULT_USER = {
4+
id: 1,
5+
name: 'Bob Smith',
6+
7+
phone: '+1 (321) 123-4567',
8+
company: 'Acme Inc',
9+
department: 'Engineering',
10+
title: 'Senior Software Engineer'
11+
};
12+
13+
function user (user = DEFAULT_USER, action) {
14+
switch (action.type) {
15+
case UPDATE_USER:
16+
return Object.assign(
17+
{},
18+
user,
19+
action.change
20+
);
21+
default:
22+
return user;
23+
}
24+
}
25+
26+
export default user;
27+
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { combineReducers } from 'redux';
2+
import user from './user';
3+
4+
const userApp = combineReducers({ user });
5+
6+
export default userApp;
7+

0 commit comments

Comments
 (0)