react-router-dom NavLink 图标更新程序“已超出最大更新深度。”

李贤

我们正在使用 React.js 开发一个项目。我正在使用 react-router-dom 配置多个页面,并且我想使用 NavLink 更改当前活动的图标。

icon+sel 用于活动页面。

我根据之前问题的答案重写了代码。SetState 也是从render 出来的,我稍微接触了一些其他的设置。

错误……错误

控制台 ...控制台 1 控制台 2

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`)}/>
                    </NavLink>
                    <NavLink className="bottomiconinside bottomiconinsideside" to="/add" isActive={this.oddEvent} >
                    <img className="iconcenter" src={require(`./add${this.state.iconName == 'add' ? 'sel' : ''}.svg`)}/>
                    </NavLink>
                    <NavLink className="bottomiconinside bottomiconinsideside" to="/account" isActive={this.oddEvent}>
                    <img className="iconcenter" src={require(`./account${this.state.iconName == 'account' ? 'sel' : ''}.svg`)}/>
                    </NavLink>
                    <NavLink className="bottomiconinside bottomiconinsideside" exact to="/setting" isActive={this.oddEvent}>
                    <img className="iconcenter" src={require(`./setting${this.state.iconName == 'setting' ? 'sel' : ''}.svg`)}/>
                    </NavLink>
                </div>
              </div>
            </div>
              </fragment>
        );
    }

  }

export default Bottom;

用户2343647

您正在从oddEvent 内部调用setState()(屏幕截图显示了它)。你不能从 render() 中做到这一点,它会导致重新渲染,它调用oddEvent,它调用 setState(),它会导致重新渲染,等等。

您将不得不重新考虑您的设计。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

React Router dom将活动类设置为NavLink

来自分类Dev

带有 Reactstrap 和 React Router Dom 的 Active NavLink

来自分类Dev

react-router-dom NavLink isActive 不能正常工作

来自分类Dev

NavLink确切道具不适用于react-router-dom 6

来自分类Dev

NavLink不添加activeClassName(react-router-dom v5.2.0)

来自分类Dev

如何使用来自 react-router-dom 的 Mocha 测试“NavLink”

来自分类Dev

React Router NavLink和activeClassName的问题

来自分类Dev

React-Router NavLink活动颜色

来自分类Dev

React Router-在Navlink中不处理OnClick

来自分类Dev

如何包装React Router v4的NavLink组件?

来自分类Dev

react-router-dom <链接>未更新页面

来自分类Dev

更改网址时,react router dom不更新类组件

来自分类Dev

React Router Dom的<Switch>问题

来自分类Dev

React错误中超出最大更新深度

来自分类Dev

React Infinite Scroll 超出最大更新深度

来自分类Dev

在React Router v4中为NavLink设置默认的activeClassName

来自分类Dev

react-router-dom如何更新路由组件内的父状态

来自分类Dev

使用React-Router-Dom创建PrivateRoute

来自分类Dev

react-router-dom 元素类型无效

来自分类Dev

React-router-dom 重定向问题

来自分类Dev

ReactJS - 关于 react-router-dom 的问题

来自分类Dev

React无法识别DOM元素上的`totalPrice and totalQuantity`属性,并且超过了最大更新深度错误

来自分类Dev

不变违规:React Native中超出最大更新深度

来自分类Dev

React Stripe拆分卡元素出错:超出最大更新深度

来自分类Dev

React功能组件中超出最大更新深度

来自分类Dev

React,HTML和JavaScript:错误:超出最大更新深度

来自分类Dev

react-router-dom与react挂钩不起作用

来自分类Dev

React-React Router Dom,hashbang路由解决方案

来自分类Dev

如何使用React正确设置react-router-dom链接

Related 相关文章

  1. 1

    React Router dom将活动类设置为NavLink

  2. 2

    带有 Reactstrap 和 React Router Dom 的 Active NavLink

  3. 3

    react-router-dom NavLink isActive 不能正常工作

  4. 4

    NavLink确切道具不适用于react-router-dom 6

  5. 5

    NavLink不添加activeClassName(react-router-dom v5.2.0)

  6. 6

    如何使用来自 react-router-dom 的 Mocha 测试“NavLink”

  7. 7

    React Router NavLink和activeClassName的问题

  8. 8

    React-Router NavLink活动颜色

  9. 9

    React Router-在Navlink中不处理OnClick

  10. 10

    如何包装React Router v4的NavLink组件?

  11. 11

    react-router-dom <链接>未更新页面

  12. 12

    更改网址时,react router dom不更新类组件

  13. 13

    React Router Dom的<Switch>问题

  14. 14

    React错误中超出最大更新深度

  15. 15

    React Infinite Scroll 超出最大更新深度

  16. 16

    在React Router v4中为NavLink设置默认的activeClassName

  17. 17

    react-router-dom如何更新路由组件内的父状态

  18. 18

    使用React-Router-Dom创建PrivateRoute

  19. 19

    react-router-dom 元素类型无效

  20. 20

    React-router-dom 重定向问题

  21. 21

    ReactJS - 关于 react-router-dom 的问题

  22. 22

    React无法识别DOM元素上的`totalPrice and totalQuantity`属性,并且超过了最大更新深度错误

  23. 23

    不变违规:React Native中超出最大更新深度

  24. 24

    React Stripe拆分卡元素出错:超出最大更新深度

  25. 25

    React功能组件中超出最大更新深度

  26. 26

    React,HTML和JavaScript:错误:超出最大更新深度

  27. 27

    react-router-dom与react挂钩不起作用

  28. 28

    React-React Router Dom,hashbang路由解决方案

  29. 29

    如何使用React正确设置react-router-dom链接

热门标签

归档