reactjs - 如何在 React 中本地存储值后立即渲染组件

标签 reactjs react-hooks react-component

我只想在 localStorage 中存储值(“id”)时才显示一个组件。单击按钮时会存储 id。

{localStorage.getItem('id') != null ? <Game/> : null }

它工作正常,所以我单击按钮并将 id 存储在 localStorage 中,但只有在刷新后我才能看到组件。但我想将组件存储在本地后立即渲染(不需要刷新页面)

有什么建议吗?

最佳答案

我的版本,带有自定义 Hook 。

import "./styles.css";
import { useState,useEffect } from "react";

function useLocalStorage(key) {
  const [state, setState] = useState(localStorage.getItem(key));
  function setStorage(item) {
    localStorage.setItem(key, item);
    setState(item);
  }
  return [state, setStorage];
}

export default function App() {
  const [input, setInput] = useState("");
  const [item, setItem] = useLocalStorage("myKey");

  return (
    <div className="App">
      <input value={input} onInput={(e) => setInput(e.target.value)} />
      <button onClick={() => setItem(input)}>Click</button>
      <p>{item}</p>
    </div>
  );
}

https://codesandbox.io/s/bitter-sea-d6ni42?file=/src/App.js

关于reactjs - 如何在 React 中本地存储值后立即渲染组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72298835/

相关文章:

reactjs - 如何将 URL 参数传递给选择器

javascript - 自定义 useFetch Hook 中的无限循环

javascript - React useMemo 钩子(Hook)用例

javascript - React hooks 重置状态并获取数据

reactjs - 我可以同时导出组件和常量吗

javascript - Reactjs 使用相似的按钮将不同的属性传递给相同的函数?

javascript - 如何递归地将 props 注入(inject)树中的每个 React 组件?

javascript - React 组件中渲染实际运行多少次

javascript - NextJS : Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined

reactjs - React.JS Ref 中的 Ref 错误 - createRef、useRef 和 using Refs