function mapStateToProps(state) {
console.log(state);//打印不出来会报错,为什么?
const {user, messages} = state;//这个user,message是根据什么来的
return {user, messages};
}
export default connect(mapStateToProps)(SlotContainer);//这个connect函数是怎么工作的?
connect(mapStateToProps)这里面mapStateToProps没有传参数啊,在connect执行的时候mapStateToProps是怎么工作的
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这个可以去看看
react-redux源码里的connect,挺好理解的,他其实是把mapStateToProps作为参数传递给connect,然后在connect里调用的时候又把state作为参数传给了他简单贴几段源码
打印不出来会报错,为什么?
报的什么错?把报错内容贴出来。connect写法没问题,估计报错是因为没有store?你的组件有没有被<Provider />包裹?
这个user,message是根据什么来的?
这个是ES6的语法,叫做Destructuring
这个connect函数时做什么工作的?
connect是react redux的一个方法,使用HOC模型对当前组件进行包裹,用来连接redux store和当前组件的。他会负责从mapStateToProps,mapDispatchToProps拿到的结果 和 父级组件传下来的props 合并,然后传递给当前组件。
mapStateToProps,这里的State指的是Redux里的state。这里的props指的是当前组件获取的props。当初始化的时候和redux的state发生改变的时候,会调用这个方法,更新当前组件的props.
state这个是redux中store中的值,只要state发生了改变,那么页面就会进行更新。而connect是redux中的方法,就是链接store和你的组件,使之相互通信。这也是精要之处。一旦通信后,reducer中的初始值state就会作为你组件里面的props,这样你就可以进行处理参数了。