理想是火,点燃熄灭的灯。
在使用react hooks的开发过程中
我们有个从仓库取值并监听仓库值变化的需求
之前我们使用的是常规的react-redux的 connect - mapStateToProps
import { useSelector, connect } from 'react-redux' const mapStateToProps = (state) => { return { newSearchOptions: state.controller.newSearchOptions.toJS(), } } 监听仓库值的变化 useEffect(() => { console.log('newSearchOptions:', newSearchOptions) }, [newSearchOptions]) export default connect(mapStateToProps)(SearchResultCommon)
取值方面我们想方便一点 就使用了useSelector
const newSearchOptions = useSelector((state) => state.controller.newSearchOptions.toJS() )
但是坑来了。。我们在监听仓库值变化的时候,页面就开始无限循环了
因为此时的useSelector 被当作是页面的state,如果在useEffect中更新state,就会无限循环。。
所以只能使用上面的方式进行仓库值的变化监听...
看来有时候还是不能省事啊
作者: Bill 本文地址: http://biaoblog.cn/info?id=1689068763241
版权声明: 本文为原创文章,版权归 biaoblog 个人博客 所有,欢迎分享本文,转载请保留出处,谢谢!