reactjs - 首先 react 加载本地存储

标签 reactjs redux

我有一个 react 应用程序,就像我有App.js一样,其中包括我的页眉页脚..

在那里,我将我的状态存储到本地存储中。存储后我可以检索它..

但是我在加载它时遇到问题。在我的浏览器中,当我执行 localstorage['key'] 时,它为我提供了数据,但我无法加载。

我应该先在哪里加载它?

我有Root.js:

class Root extends Component {
  render() {
    const { store } = this.props
    return (
      <Provider store={store}>
          <ReduxRouter />
      </Provider>
    )
  }
}

Root.propTypes = {
  store: PropTypes.object.isRequired
}

export default Root
外层的

index.js :

const store = configureStore()


render(

    <Root store={store} />,
  document.getElementById('root')
)

我应该在哪里加载我的localStorage

需要帮助。我需要知道在 React 中首先调用什么,以便我可以调用加载 localStorage 那里..如果这不是坏主意

最佳答案

您正在使用 redux,因此您应该读取数据作为操作的结果。

实现这项工作的最简单方法是:

  1. ReduxRouter 下应该有一个连接的组件。请参阅docs
  2. 在该连接的组件中,添加 componentDidMount 以调用操作 getStuffFromLocalstorage。请参阅React lifecycle events
  3. 在您的 reducer 中,从 localStorage 获取您想要的内容并填充状态

在您的 reducer 中执行此操作可能是一种反模式,但它至少会使 redux-flow 顺利运行。

关于reactjs - 首先 react 加载本地存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35477282/

相关文章:

reactjs - 悬停在图表上时 react-chartjs-2 垂直线

reactjs - 类型 'typeof test' 的参数不可分配给类型 'Component<{ children?: ReactNode; } & DispatchProp<any>>' 的参数

javascript - 当我打开它时,我的模式有黑色背景

javascript - react : How can I render multiple menus with map() without causing a re-render?

reactjs - 未捕获错误 : Actions must be plain objects. 相反,实际类型为: 'undefined'

node.js - docker 中使用 kerberos 和 openldap 进行 SSO

javascript - 如何使用 JSX 样式指定自定义鼠标光标

reactjs - 使用 .htaccess 将除一个路由之外的所有路由转发到 react-router v4 的主页

firebase - 从 firebase 渲染 FlatList 中的数据

javascript - 我可以使用 Jest 和 Enzyme 测试将数据映射到子组件的函数吗