第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

刷新時(shí)反應(yīng)鉤子和上下文 api localstorage

刷新時(shí)反應(yīng)鉤子和上下文 api localstorage

慕碼人2483693 2022-10-21 17:34:38
在我的 SPA 中,我使用了反應(yīng)鉤子和上下文 API。我需要保持使用上下文 API 渲染的組件視圖的當(dāng)前狀態(tài),以便我可以通過應(yīng)用程序?qū)崿F(xiàn)全局組件條件渲染。我在一個(gè)儀表板頁面上有兩個(gè)視圖:概述和詳細(xì)信息。該按鈕觸發(fā)全局狀態(tài)更改,即使在頁面刷新時(shí)視圖也應(yīng)固定在狀態(tài)值上。這是我的代碼片段:AppRoutes 文件import React, { useState } from "react";import { Router, Route, Switch } from "react-router-dom";import history from "../utils/history";import { PyramidProvider } from "../context/pyramidContext";import Dashboard from "../pages/dashboard/Dashboard";const AppRoutes = () => {  return (    <div>      <React.Suspense fallback={<span>Loading...</span>}>          <Router history={history}>            <Switch>              <PyramidProvider>                <Route path="/" component={Dashboard} />              </PyramidProvider>            </Switch>          </Router>      </React.Suspense>    </div>  );};export default AppRoutes;儀表板頁面import React, { useState, useEffect, useContext } from "react";import { PyramidContext } from "../../context/pyramidContext";import PyramidDetail from "../../components/pyramidUI/pyramidDetail";import PyramidOverview from "../../components/pyramidUI/pyramidOverview";const Dashboard = (props) => {  const { info, setInfo } = useContext(PyramidContext);  return (    <React.Fragment>      {info.uiname === "overview" ? <PyramidOverview /> : <PyramidDetail />}    </React.Fragment>  );};export default Dashboard;概覽組件import React, { useState, useContext } from "react";import { PyramidContext } from "../../context/pyramidContext";const Overview = (props) => {  const { info, setInfo } = useContext(PyramidContext);  return (    <div className="d-flex flex-column dashboard_wrap">      <main>        <div className="d-flex">          <button            onClick={() => setInfo({ uiname: "detail", pyramidvalue: 1 })}          >            change view          </button>        </div>      </main>    </div>  );};export default Overview;我單擊按鈕以呈現(xiàn)detail視圖,一旦刷新頁面,組件就會(huì)將其視圖更改為 ,overview而不是停留在detail. 我檢查了本地存儲(chǔ)值,它正在正確更新,但組件視圖仍然沒有按照值保留。我無法理解我在哪里做錯(cuò)了,請(qǐng)幫助解決這個(gè)問題?提前致謝。
查看完整描述

1 回答

?
翻過高山走不出你

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊

您永遠(yuǎn)不會(huì)在信息狀態(tài)中使用 localStage 的值,您應(yīng)該將代碼替換為:

const [info, setInfo] = useReducer(reducer, localState || initialState);


查看完整回答
反對(duì) 回復(fù) 2022-10-21
  • 1 回答
  • 0 關(guān)注
  • 100 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)