【发布时间】:2020-05-05 07:58:01
【问题描述】:
我最近才开始使用 Redux,并设法使用以下代码将我的 <App /> 组件连接到商店:
const mapStateToProps = state => ({
...state,
});
const mapDispatchToProps = dispatch => ({
writeSomething: () => dispatch(writeSomething),
});
export default connect(mapStateToProps, mapDispatchToProps)(App);
这很简单,当我按下一个按钮时,writeSomething 会被调用,它会将 false 变为 true,并且工作正常。
但后来我想将我的其他组件连接到商店并注意到我必须从那里复制粘贴整个代码,然后我还必须导入 writeSomething。这看起来很重复而且不好玩,所以必须有更好的方法来做到这一点,对吧?我四处搜寻,并没有真正找到我想要的东西,所以我想知道:是否有一种更简单、更快捷的方式来连接到商店,或者我是否必须为我想要的每个组件复制/粘贴我的代码连接到 redux 商店?
【问题讨论】:
-
使用 HOC 高阶组件!
-
为什么不试试钩子。 react-redux 有称为 useDispatch、useSelector 的钩子。 useDispatch 将调度和操作,而 useSelector 将获取状态。做钩子的方式很有趣。