component显示问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// index.jsx
import React from 'react'
import Footer from './Footer'
import AddTodo from '../containers/AddTodo'
import VisibleTodoList from '../containers/VisibleTodoList'

const App = () => (
<div>
<AddTodo />
<VisibleTodoList />
<Footer />
</div>
)

export default App
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// components/Footer.js
import React from 'react'
import FilterLink from '../containers/FilterLink'
import { VisibilityFilters } from '../actions'

const Footer = () => (
<div>
<span>Show: </span>
<FilterLink filter={VisibilityFilters.SHOW_ALL}>All</FilterLink>
<FilterLink filter={VisibilityFilters.SHOW_ACTIVE}>Active</FilterLink>
<FilterLink filter={VisibilityFilters.SHOW_COMPLETED}>Completed</FilterLink>
</div>
)

export default Footer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// containers/VisibleTodoList.js
import { connect } from 'react-redux'
import { toggleTodo } from '../actions'
import TodoList from '../components/TodoList'

const getVisibleTodos = (todos, filter) => {
switch (filter) {
case 'SHOW_COMPLETED':
return todos.filter(t => t.completed)
case 'SHOW_ACTIVE':
return todos.filter(t => !t.completed)
case 'SHOW_ALL':
default:
return todos
}
}

const mapStateToProps = state => ({
todos: getVisibleTodos(state.todos, state.visibilityFilter)
})

const mapDispatchToProps = dispatch => ({
toggleTodo: id => dispatch(toggleTodo(id))
})

export default connect(
mapStateToProps,
mapDispatchToProps
)(TodoList)

就算是

1
2
3
4
5
6
7
const App = () => (
<div>
<AddTodo />
<VisibleTodoList />
<Footer />
</div>
)

但是在显示的时候,还是不会显示VisibleTodoList,而是显示TodoList

1
2
3
4
export default connect(
mapStateToProps,
mapDispatchToProps
)(TodoList)

component显示的结构如下

1