react

作者: 星期六1111 | 来源:发表于2017-10-16 21:54 被阅读17次

问题描述

左侧的侧边栏有3个menu菜单,我在mapStatetoProps里进行了处理,使其可以获取到侧边栏数组。在ComponentDidMount里调用函数update,使其显示哪个是高亮的。

矛盾点

在组件运行到componentDidMount中的时候,数组里只有两个元素,所以侧边栏循环出来也是两个元素,我需要显示的是侧边栏有3个元素。

问题解决

Q1:这是React的生命周期问题,sideBars数组里的第三个元素会在componentDidMount之后显示,如果需要显示三个元素,那render里怎么处理?
A1:render 里就不能再用之前的setState了,直接使用this.props.sidebars来循环调用。

Q2:那高亮的3部分切换该怎么办?
由于componentDidMount中只能显示两个元素,那么第三个元素就用componnentDidUpdate或componentWillRecieveProps来调用update函数显示。

Q3:使用ComponentDidUpdate后代码产生了死循环,如何解决?
A3:


Alt text

如图,在update函数中使用setState,触发了componnentDidUpdate,ComponentDidUpdate又调用了update函数,这样就形成了死循环。
解决办法:在update函数中写上if的判断条件,当某个条件成立时,return ,防止死循环。。。

反思

  • 对React的生命周期理解不够,对组合使用生命周期函数不熟悉
  • 写react写了这么久,但这样的情况还不会处理,感觉自己挺没用的

action

  • 不会的问题就记录下来,理解思考,下次不犯同样的错误
  • 下次就写demo来练习,吃一堑,长一智

相关文章

  • React基础

    react 教程 react 组件介绍 react state 介绍 react Props 介绍 React:组...

  • 学习react no.1

    学习react no.1 react 定义 react 特点 react

  • React Native 学习之路

    React 相关资料 React Components React Properties React State ...

  • React基础

    React包含react元素和react组件 react元素 react组件 react组件分为函数组件和类组件 ...

  • React面试题 整理脑图

    react基础 React生命周期 react-router react进阶 react Hooks redux 其他

  • react 导入中的 as

    import React from 'react'只导入 是 React。 而import * as React ...

  • ES5与ES6小结部分

    1var React=require('react'); 等价 import React from ' react...

  • React DnD基础概念和整体架构

    React DnD 的英文是 Drag and Drop for React。React DnD 是 React ...

  • React

    React 《React 官网文档》 React简介 React概念 React官网学习实践 - jSX简介 Re...

  • React学习笔记_01

    React 基础组件 react概述 npm i react react-dom react包 是核心,提供创建元...

网友评论

      本文标题:react

      本文链接:https://www.haomeiwen.com/subject/ifiluxtx.html