![](/img/trans.png)
[英]ReactJS Redux State (global state) + React.Context (local state)
[英]Combining React local state with Redux global state
我正在创建一个Web应用程序,用户在图像中的对象周围绘制边界框。
mouseUp
之前的mouseMove
期间)。 mouseUp
触发,绘图结束,不再对矩形进行更新。 我想将这个矩形“提交”给Redux。 这是处理国家管理的正确和/或规范方式吗?
我也想通过这两个反应,Redux的状态(即两个正在绘制的矩形现在以及已经在终极版“承诺”已矩形)作为道具的孩子作出反应的组成部分。
这是否可以与react-redux
的mapStateToProps
? 我似乎找不到在mapStateToProps
React状态和Redux状态组合在一起的mapStateToProps
。
mapStateToProps
用于将redux状态与组件的props连接起来。 你基本上做了两件事:
使用父状态将绘图详细信息传递给子组件:
//Parent component render function render() { <ChildComponent rectangle={this.state.rectangle}/> }
使用mapStateToProps
传递redux状态
您是否考虑过在redux而不是父组件状态中保存绘图状态? 这样,多个组件(例如子组件)就会知道矩形绘图。
PS - 您可以将mapStateToProps
用于react和redux状态,但这是多余的,因为您已经明确地传递了反应道具。
mapStateToProps = (state, ownProps) => {
fromReduxStore: state.whatever,
fromReactState: ownProps //doesn't make sense as this prop exists already on the child component
}
只是为了详细说明AranS的答案,并给出与您的用例直接相关的信息:
mousedown
mousemove
)。 为每次鼠标移动更新Redux状态会很烦人并且可能效率低下(例如:如果使用Redux记录器,则不必要地获取一英里长的日志)。 如果其他组件需要实时了解鼠标位置的状态,您只能这样做(如AranS暗示的那样)。 我使用的是与3D建模应用程序相同的方法,效果很好。 mapStateToProps
通常通过react-redux
的connect
方法与mapDispatchToProps
使用。 给你这样的东西: export default connect(mapStateToProps, mapDispatchToProps)(MyComponent)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.