为什么 `mapStateToProps` 总是一个匿名函数?
Why is `mapStateToProps` always an anonymous function?
在将 React 与 Redux 结合使用的 official documentation 中,文档似乎总是将 mapStateToProps
定义为分配给变量的匿名箭头函数:
const mapStateToProps = (state, ownProps) => {
return {
active: ownProps.filter === state.visibilityFilter
}
}
这似乎也是 mapDispatchToProps
的使用模式以及在文档和社区中传递给 connect
的其他函数。
这样定义似乎更简单,而且按照传统用法,这样定义:
function mapStateToProps(state, ownProps) {
return {
active: ownProps.filter === state.visibilityFilter
}
}
为什么要这样做?这有实际原因吗,还是只是偏好?使用标准函数定义是否令人不悦?
没有特别的原因,这只是编写文档时使用的样式。随意将 mapState
函数编写为箭头或标准函数声明,独立声明或内联声明。两种方式都没有区别。
不过真的是匿名的吗?
const mapStateToProps = (state, ownProps) => {
return {
active: ownProps.filter === state.visibilityFilter
}
}
console.log(mapStateToProps.name)
更多信息:
出于所有意图和目的,mapStateToProps
将在堆栈跟踪中显示正确的名称,而不是 <anonymous function>
。
在将 React 与 Redux 结合使用的 official documentation 中,文档似乎总是将 mapStateToProps
定义为分配给变量的匿名箭头函数:
const mapStateToProps = (state, ownProps) => {
return {
active: ownProps.filter === state.visibilityFilter
}
}
这似乎也是 mapDispatchToProps
的使用模式以及在文档和社区中传递给 connect
的其他函数。
这样定义似乎更简单,而且按照传统用法,这样定义:
function mapStateToProps(state, ownProps) {
return {
active: ownProps.filter === state.visibilityFilter
}
}
为什么要这样做?这有实际原因吗,还是只是偏好?使用标准函数定义是否令人不悦?
没有特别的原因,这只是编写文档时使用的样式。随意将 mapState
函数编写为箭头或标准函数声明,独立声明或内联声明。两种方式都没有区别。
不过真的是匿名的吗?
const mapStateToProps = (state, ownProps) => {
return {
active: ownProps.filter === state.visibilityFilter
}
}
console.log(mapStateToProps.name)
更多信息:
出于所有意图和目的,mapStateToProps
将在堆栈跟踪中显示正确的名称,而不是 <anonymous function>
。