我刚刚开始使用react-redux
中提供的新useSelector
钩。
我总是将道具直接传递给我的选择器:
mapStateToProps(state, ownProps) {
return {
user: userSelector(state, ownProps.userId)
}
}
直接将道具传递到被视为抗模式的选择器中?
如果"否",那么如何使用useSelector
?
如果"是",那么要实现选择器的参数化的正确模式是什么?
这是在选择器中使用props
的好习惯。
选择器函数未接收OwnProps参数。但是,可以通过闭合(请参见下面的示例(或使用咖喱选择器来使用道具。
useSelector
使用state
参数接受功能。如果您将箭头函数传递给useSelector
,则可以访问包括props
的任何变量。
此示例来自官方文档
import React from 'react'
import { useSelector } from 'react-redux'
export const TodoListItem = props => {
const todo = useSelector(state => state.todos[props.id])
return <div>{todo.text}</div>
}
还查看官方文档中有关如何避免使用本地props
使用某些错误的陈旧道具页面。