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

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

React Hooks:漢堡菜單 onClick 無法識(shí)別 useCallback 返回值

React Hooks:漢堡菜單 onClick 無法識(shí)別 useCallback 返回值

嗶嗶one 2023-10-20 16:10:45
我的應(yīng)用程序中有一個(gè)組件可以處理兩件事,應(yīng)用程序的布局(移動(dòng)設(shè)備與桌面設(shè)備)以及其中的導(dǎo)航。這是一個(gè)類的實(shí)現(xiàn)。此代碼片段包含使用類編寫的組件。這就是它的樣子。但將其切換為功能性后,有兩件事停止工作:移動(dòng)側(cè)抽屜無法打開和關(guān)閉。但是,如果使用傳遞硬編碼值true,當(dāng)您進(jìn)入移動(dòng)視圖時(shí),它確實(shí)會(huì)打開。第二個(gè)是,當(dāng)路由器更改 URL 時(shí),相應(yīng)的組件不會(huì)呈現(xiàn)。例如/profile應(yīng)該帶一個(gè)到個(gè)人資料頁面為了解決漢堡菜單問題,我嘗試使用useCallback一些我認(rèn)為處理正確渲染的好策略。但無濟(jì)于事。基本上是一個(gè)總是返回正確值的函數(shù)。Open menu === true和Closed menu === false我什至設(shè)置了一個(gè)useEffect鉤子來觸發(fā)該isToggled值的日志,只是為了確保一切正常。 var useToggle = initialState => {    const [isToggled, setIsToggled] = React.useState(initialState);    const toggle = useCallback(() => setIsToggled(state => !state), [setIsToggled]);    return [isToggled, toggle];  };  var [fixed, setFixed] = useState(null);  var [isToggled, toggle] = useToggle(false);  var [Content, setContent] = useState(null);  var [isMobile, setIsMobile] = useState(false);  var [isDesktop, setIsDesktop] = useState(false);  var handleSidebarHide = () => false;   var hideFixedMenu = () => setFixed(false);  var showFixedMenu = () => setFixed(true);  useEffect(() => {    console.log('isToggled', isToggled);  }, [isToggled]);這是完整的組件:import React, { useCallback, useState, useEffect, useContext } from 'react';import { Link, NavLink } from 'react-router-dom';import Modal from '../components/Modal/MyModal.jsx';import {  Container,  Menu,  Responsive,  Segment,  Visibility,  Sidebar,  Icon,  Button} from 'semantic-ui-react';
查看完整描述

1 回答

?
慕桂英546537

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

看起來我忘記了這個(gè)布局及其更改為功能版本的一個(gè)重要方面!


除了處理由于瀏覽器寬度變化而導(dǎo)致的組件不同布局之外,我忘記在功能鉤子中添加其他重要的依賴項(xiàng)useEffect(漢堡包側(cè)面板、模式功能等)。特別是fixed, children, isToggled, modalActive。


當(dāng)我繼續(xù)引用prop/state它所依賴的那些值的類版本時(shí),功能組件的外觀和感覺自然會(huì)比原始版本(類版本)有所改進(jìn)。


這是僅使用鉤子 \o/ 的新更新版本


import React, { useCallback, useState, useEffect, useContext } from 'react';

import { Link, NavLink } from 'react-router-dom';

import Modal from '../components/Modal/MyModal.jsx';

import {

  Container,

  Menu,

  Responsive,

  Segment,

  Visibility,

  Sidebar,

  Icon,

  Button

} from 'semantic-ui-react';


import { connect } from 'react-redux';

import { modalStateOn, modalStateOff } from '../store/reducers/ui/index';


import UserContext from '../components/UserContext/UserContext.jsx';


const getWidth = () => {

  const isSSR = typeof window === 'undefined';

  return isSSR ? Responsive.onlyTablet.minWidth : window.innerWidth;

};


function logOutMenuItemHelper(

  isMobile,

  isLoggedIn,

  history,

  modalActive,

  nav,

  NavLink,

  modalStateOn,

  modalStateOff,

  handleSidebarHide


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

添加回答

舉報(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)