【问题标题】:How to get stored data from store.getState()如何从 store.getState() 获取存储的数据
【发布时间】:2019-10-23 08:44:15
【问题描述】:

我第一次使用 react 和 redux。

在我的应用程序的渲染中,如果我控制台日志store.getState() 我可以看到存储的数据{username: 'foo', password: 'bar'}

但是当我想得到像store.getState().password这样的数据时

我收到undefined error。我正在尝试将此数据传递给 我的私有路由组件为:

在 PrivateRoute 内部,然后我尝试检查用户是否已登录或未发送到仪表板

那么,我如何获取数据以传递给我的道具?

即使const { isLoggedIn, username } = store.getState() 也不起作用,它会显示

属性isLoggedIn 不存在于类型{}

顺便说一句,我知道这可能很糟糕,但这是我的第一个 react 应用,所以我正在尝试学习 redux

【问题讨论】:

  • 嘿,请分享一些代码和您面临的问题
  • 没有代码,它只是一个组件,我需要从store.getState() 获取数据,因为我可以看到数据在那里,但是我如何从中获取存储?
  • 请参考可能的重复 - stackoverflow.com/questions/41266720/…

标签: reactjs redux react-redux


【解决方案1】:

如果您从 react 应用程序调用 store,您必须使用 provider 并将 store 传递给 react 应用程序,然后将 store 的状态、操作和/或方法绑定到 react props,如此链接所示

连接https://react-redux.js.org/5.x/api/connect

但如果你在普通的 javascript 中使用 redux,那么它会正常工作。

反应中的例子

第一

import { Provider } from 'react-redux'
import { store } from "store";

ReactDOM.render(
    <Provider store={store}>
      <YourReactApp/>  // e.g <Container />
    </Provider>, document.getElementById('root')
);

然后你可以从你的商店绑定任何东西来像这样反应组件

 import { connect } from "react-redux";

    const mapStateToProps = (state) => {
      const { isLoggedIn, username }= state
      return {
        isLoggedIn,
  username
      };
    };

    const mapDispatchToProps = (dispatch :any) => {
        return {
          login: ()=> { 
            return dispatch(your action creator)
          }
        }
      }



    const Containter = connect(mapStateToProps,mapDispatchToProps)(AnyReactComponentYouWantToPassThisStore);

    export default Containter;

你可以像这样在你的页面中使用它

function AnyReactComponentYouWantToPassThisStore (props){
  return(
<div> {props.username}  </div>
)
}

那么不要调用&lt;AnyReactComponentYouWantToPassThisStore /&gt;

现在使用&lt;Container /&gt;

【讨论】:

  • 在反应中,存储不是这样调用的 const { isLoggedIn, username } = store.getState()
猜你喜欢
  • 2021-04-15
  • 1970-01-01
  • 2016-11-14
  • 1970-01-01
  • 1970-01-01
  • 2016-10-21
  • 2019-08-14
  • 1970-01-01
  • 2013-03-04
相关资源
最近更新 更多