在React + Redux客户端应用程序上保留活动用户数据的位置

Has*_*san 2 typescript reactjs redux

在我的React + Redux客户端应用程序上,我需要获取活动的用户信息(从myapp.com/users/me获取)并将其保存在某个位置,以便可以从多个组件访问它。

我想那window.activeUser = data不是最佳实践。但是我找不到有关最佳做法的任何资源。做我想要的最好的方法是什么?

小智 5

您可以将其保存在单独的reducer中,然后connect()在组件中导入状态的多个部分。

假设您有2个称为reducer的减速器users.jstags.js并且combineReducers在设置商店时将它们组合在一起。您只需将一个函数传递给connect()调用就可以拉不同的部分。因此,使用es6 +装饰器:

const mapStateToProps = state => {
  return {users: state.users, tags: state.tags}
}

@connect(mapStateToProps)
export default class MyComponent extends React.Component {
Run Code Online (Sandbox Code Playgroud)

然后在您的render功能:

return (
  <div>
    <p>{this.props.users.activeUsernameOrWhatever}</p>
    <p>{this.props.tags.activeTags.join('|')}</p>
  </div>
);
Run Code Online (Sandbox Code Playgroud)

因此,您不同的减速器状态成为上的对象this.props