Skip to content

Commit 51e049d

Browse files
committed
Give each component its own selector
as described here: http://redux.js.org/docs/recipes/ComputingDerivedData.html
1 parent 7eee4ae commit 51e049d

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

components/TodoItem.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,16 +77,18 @@ TodoItem.propTypes = {
7777
completeTodo: PropTypes.func.isRequired
7878
}
7979

80-
const relatedTodoSelector = createSelector(
80+
const relatedTodoSelectorFactory = () => createSelector(
8181
[
8282
state => state.todos,
8383
(_, ownProps) => ownProps.todo.other
8484
],
8585
(todos, otherId) => ({ other: otherId === null ? null : todos[otherId] })
8686
)
8787

88+
const makeMapStateToProps = () => relatedTodoSelectorFactory();
89+
8890
const ConnectedTodoItem = connect(
89-
relatedTodoSelector
91+
makeMapStateToProps
9092
)(TodoItem)
9193

9294
// MWE: export TodoItem for the plain scenario,

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
"pure-render-mixin": "^1.0.2",
2323
"react": "^0.14.7",
2424
"react-dom": "^0.14.7",
25-
"react-redux": "^4.2.1",
26-
"redux": "^3.2.1",
25+
"react-redux": "^4.4.1",
26+
"redux": "^3.3.1",
2727
"reselect": "^2.3.0"
2828
},
2929
"devDependencies": {

0 commit comments

Comments
 (0)