我可能遗漏了一些非常明显的东西,并想清除自己。
这是我的理解。
在一个简单的 react 组件中,我们有states
& props
。更新state
与setState
重新呈现整个组件。props
大多是只读的,更新它们没有意义。
在订阅 redux store 的 react 组件中,通过类似store.subscribe(render)
,它显然会在每次 store 更新时重新渲染。
react-redux有一个助手connect()
,它注入状态树的一部分(组件感兴趣的部分)和组件的 actionCreators props
,通常通过类似的方式
const TodoListComponent = connect(
mapStateToProps,
mapDispatchToProps
)(TodoList)
但是在理解 asetState
对于TodoListComponent
响应 redux 状态树更改(重新渲染)至关重要的情况下,我在组件文件中找不到任何state
或setState
相关代码TodoList
。它是这样写的:
const TodoList = ({ todos, onTodoClick }) => (
<ul>
{todos.map(todo =>
<Todo
key={todo.id}
{...todo}
onClick={() => onTodoClick(todo.id)}
/>
)}
</ul>
)
有人可以指出我缺少什么的正确方向吗?
PS 我正在关注与redux 包捆绑在一起的待办事项列表示例。