私はおそらく非常に明白な何かを見逃しているし、自分自身をクリアしたいと思います。リデュースする接続コンポーネントは、どのように再レンダリングするのかを知っていますか?
これは私の理解です。
ナイーブ反応成分において、我々はstates
& props
を有する。 state
をsetState
に更新すると、コンポーネント全体が再描画されます。 props
はほとんどが読み取り専用であり、更新することは意味をなさない。
還元型ストアにサブスクライブする反応コンポーネントでは、store.subscribe(render)
のようなものを介して、それは明らかにストアが更新されるたびに再描画されます。
const TodoListComponent = connect(
mapStateToProps,
mapDispatchToProps
)(TodoList)
のようなものを経由してでも理解した上で、コンポーネントにprops
ような状態ツリーの一部(つまり、コンポーネントに関心がある)とactionCreatorsを注入ヘルパーconnect()
を持っていますsetState
はTodoListComponent
が還元状態ツリーの変更(再レンダリング)に反応するために不可欠です。TodoList
コンポーネントファイルにはstate
またはsetState
という関連コードが見つかりません。これは次のようなものです:
const TodoList = ({ todos, onTodoClick }) => (
<ul>
{todos.map(todo =>
<Todo
key={todo.id}
{...todo}
onClick={() => onTodoClick(todo.id)}
/>
)}
</ul>
)
私が紛失しているものについて正しい方向に指摘できますか?
P.S私はreduxパッケージ(https://github.com/reactjs/redux/tree/master/examples/todos/src/containers)にバンドルされているtodoリストの例に従っています。
ありがとうございました!あなたは先日私を助けた同じ人ですか@ HN - https://news.ycombinator.com/item?id=12307621便利なリンクがありますか? お返事ありがとうございました:) –
うわー、それは私です:Reddit、HN、SO、Medium、およびその他のさまざまな場所で、Reduxオンラインに関するディスカッションを過ごす時間が多すぎます。助けてうれしい! (ReasonifluxのチャットチャンネルをDiscordに置くことを強くお勧めします。たくさんの人が質問に答えてくれています。私は通常、夕方にオンラインにいます。EST。Invite linkはhttp://reactiflux.comです。) – markerikson
質問に答えた、答えを受け入れる心? :) – markerikson