I'm probably missing something very obvious and would like to clear myself.
Here's my understanding.
In a naive react component, we have states
& props
. Updating state
with setState
re-renders the entire component. props
are mostly read only and updating them doesn't make sense.
In a react component that subscribes to a redux store, via something like store.subscribe(render)
, it obviously re-renders for every time store is updated.
react-redux has a helper connect()
that injects part of the state tree (that is of interest to the component) and actionCreators as props
to the component, usually via something like
const TodoListComponent = connect(
mapStateToProps,
mapDispatchToProps
)(TodoList)
But with the understanding that a setState
is essential for the TodoListComponent
to react to redux state tree change(re-render), I can't find any state
or setState
related code in the TodoList
component file. It reads something like this:
const TodoList = ({ todos, onTodoClick }) => (
<ul>
{todos.map(todo =>
<Todo
key={todo.id}
{...todo}
onClick={() => onTodoClick(todo.id)}
/>
)}
</ul>
)
Can someone point me in the right direction as to what I am missing?
P.S I'm following the todo list example bundled with the redux package.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…