React + Redux:更新商店时如何更新状态

时间:2018-03-22 03:36:17

标签: javascript reactjs redux

对于noob问题感到抱歉,但是我试图学习React + Redux和我正在使用的书有一些概述,但没有任何指示将它们捆绑在一起"。

看看:https://stackblitz.com/edit/react-chapt8-redux-store?file=index.js

你会看到我有一个初始的颜色状态,有几个减速器和动作创建者。

我的问题基本上是,我的商店更新后如何更新控件/状态?

看第49行,我从商店设置了初始状态;然后,在第51行到第54行,我订阅商店更改,我调用this.setState并获取商店的新状态。同样在第71行,我通过将colors分配给状态来设置subscribe常量。

这是最佳/正确的方式吗?或者,还有更好的方法?是最好更新状态,反过来,更新颜色(就像我目前正在做的那样)?或者,我应该通过pip函数以某种方式更新颜色吗?

感谢您的见解/指导。

1 个答案:

答案 0 :(得分:2)

所以你的工作方式很有效,但通常你从商店里拿出的东西都没有进入你组件的state - 商店的目的是避免首先保持这种状态。

因此,下一步是添加react-reduxhttps://www.npmjs.com/package/react-redux)作为依赖项,并使用connect函数将状态拉出存储并通过它将其提供给组件道具:

import { connect } from 'react-redux';

class App extends Component {
    ... code for <App/> component
}

function mapStateToProps(state) {
    ... code to pick out only the relevant state from the props
}

connect(mapStateToProps)(App);

我强烈推荐史蒂芬格里德关于udemy的视频,它专门介绍了一些这些内容,而且这里的帖子实在太多了