我們正在使用React.js進行項目。我正在使用react-router-dom配置多個頁面,并且我想使用NavLink更改當前活動的圖標。icon + sel用于活動頁面。我已經根據先前問題的答案重寫了代碼。SetState也退出了渲染,我稍微觸摸了其他設置。import React from 'react';import { Link, NavLink, Router } from 'react-router-dom';import ReactDOM from 'react-dom';import home from './home.svg';import homesel from './homesel.svg';import search from './search.svg';import searchsel from './searchsel.svg';import setting from './setting.svg';import settingsel from './settingsel.svg';import add from './add.svg';import addsel from './addsel.svg';import account from './account.svg';import accountsel from './accountsel.svg';import './Bottom.css';class Bottom extends React.Component { state = { iconName : 'initialIconName' } setIconName = (name) => { this.setState(() => ({ iconName: name })) } oddEvent = (match, location) => { if (!match) return false console.log(location.pathname.substr(1).split('/')[0]) this.setState(() => ({ iconName: location.pathname.substr(1).split('/')[0] })) } render() { return ( <fragment> <div className="bottom noright"> <div className="bottomcontents"> <div className="bottomicon"> <NavLink className="bottomiconinside bottomiconinsideside" src={home} exact to="/" isActive={this.oddEvent}> <img className="iconcenter" src={require(`./home${this.state.iconName == 'home' ? 'sel' : ''}.svg`)}/> </NavLink> <NavLink className="bottomiconinside bottomiconinsideside" exact to="/search" isActive={this.oddEvent}> <img className="iconcenter" src={require(`./search${this.state.iconName == 'search' ? 'sel' : ''}.svg`)}/> } }
react-router-dom NavLink圖標更新程序“超出了最大更新深度。”
料青山看我應如是
2021-05-12 14:13:03