我应该直接从redux中的商店使用getState吗?

时间:2018-04-11 18:20:34

标签: reactjs redux react-redux

我有一个使用react和redux创建的应用程序,当应用程序启动时,我从API获取了一些数据(配置,例如用户状态和它的标签显示,某种字典用于国际化),

我有用户列表查看,列表的每一行都是User类的实例,我希望以人类可读的方式显示用户状态,所以我需要从API获取的状态,

我使用redux和redux-thunk从API获取字典并在redux商店中存储字典,

我想在User类中创建方法以将状态作为人类可读字符串返回,因此我可以将带有props的状态字典发送到ListComponent并将其作为参数发送到User.getStatus方法(方法可以返回{ {1}}但我不认为这是好方法,所以在使用User类声明的模块中我导入我的redux存储(dict[this.status])的结果)并在combineReducers方法中调用{{ 1}}并从返回值获取状态字典,这是一个很好的做法,或者我可以做得更好?

2 个答案:

答案 0 :(得分:0)

您正在访问仅适用于图书馆作者的redux的低级api。您应该使用react-redux包,其中包含一个名为connect的高阶组件,您可以使用它来订阅您的商店。正如@MichalCholewiński所提到的,你可以使用mapStateToProps函数将你的reducer状态作为道具传递给你的组件。

Redux的作者制作了一个很棒的教程,展示了how you should integrate with react.

答案 1 :(得分:0)

我希望您将数据作为参数传递,以使用户类可重用,这意味着即使无法访问商店,它也可以自行运行。否则也可以从商店访问该状态。为了保持模块化,您可以尝试redux-named-reducers,这样您就可以从代码中的任何位置访问Reducer这样的最新状态:

state1 = getState(reducerA.state1)