、コンテナの概念を、このコンポーネントについて混乱して感じた表現的コンポーネントは、物事を見て、ストアに接続すべきではない方法を定義します。ここでは表現的/ダムの成分の例は次のとおりです。
import React from "react"
import styles from "./styles.css"
const TodoList = ({ todos, removeTodo }) => (
<div className={ styles.todoList }>
{ ... }
</div>
)
export default TodoList
Aコンテナは、物事がどのように動作するかを定義して、あなたは、コンポーネントのこの種のDOMのマークアップやスタイルを置くべきではありません。これはストアに接続され、Presentational/Dumbコンポーネントにのみデータを提供します。ここではコンテナ/スマートコンポーネントの例である:だから
import { connect } from "react-redux"
import { removeTodo } from "actions/todos"
import TodoList from "components/TodoList"
const mapStateToProps = (state) => ({
todos: state.todos,
})
const mapDispatchToProps = (dispatch) => ({
removeTodo(todoId) {
dispatch(removeTodo(todoId))
},
})
const TodoListContainer = connect(
mapStateToProps,
mapDispatchToProps
)(TodoList)
export default TodoListContainer
、あなたの質問に答えるために、あなたは表現的/ダムコンポーネントにmapStateToProps
とmapDispatchToProps
を使用しないでください。
上の素晴らしい記事です。ちょうど1つの質問、私はTodoListContainerをレンダリングメソッドのコンポーネントにしてはいけない、TodoListをレンダリングするためにTodoListContainerを呼び出すはずですか?私は基本的にそれをレンダリングする方法がありません。 –