相关疑难解决方法(0)

在所有componentDidMount的子项之后调用parentDidMount吗?

我的父母渲染中有以下代码

<div>           
{
    this.state.OSMData.map(function(item, index) {
        return <Chart key={index} feature={item} ref="charts" />
    })
}
</div>
Run Code Online (Sandbox Code Playgroud)

并在我的孩子图表下面的代码

<div className="all-charts">
    <ChartistGraph data={chartData} type="Line" options={options} />
</div>
Run Code Online (Sandbox Code Playgroud)

我认为只有在加载所有子节点后才调用parentDidMount.但是这里父子的componentDidMount在child的componentDidMount之前被调用.

这是怎么回事?或者我做错了什么.

如果这是事情的工作方式,我如何检测从父项加载所有子组件的时间?

javascript reactjs

68
推荐指数
1
解决办法
2万
查看次数

什么是使用影响反应挂钩中的执行顺序及其内部清理逻辑?

根据反应文件,useEffect在重新运行useEffect部分之前将触发清理逻辑.

如果你的效果返回一个函数,React将在清理时运行它...

没有用于处理更新的特殊代码,因为useEffect默认情况下处理它们.它会在应用下一个效果之前清除之前的效果......

然而,当我使用requestAnimationFramecancelAnimationFrame里面useEffect,我发现cancelAnimationFrame可能无法正常停止动画.有时,我发现旧动画仍然存在,而下一个效果会带来另一个动画,这会导致我的Web应用程序性能问题(特别是当我需要渲染繁重的DOM元素时).

我不知道反应钩子在执行清理代码之前是否会做一些额外的事情,这使得我的取消动画部分不能正常工作,会useEffect挂钩做像闭包这样的东西来锁定状态变量吗?

什么是使用效果的执行顺序及其内部清理逻辑?我在下面写的代码有什么问题,这使得cancelAnimationFrame不能完美地工作吗?

谢谢.

//import React, { useState, useEffect } from "react";

const {useState, useEffect} = React;

//import ReactDOM from "react-dom";

function App() {
  const [startSeconds, setStartSeconds] = useState(Math.random());
  const [progress, setProgress] = useState(0);

  useEffect(() => {
    const interval = setInterval(() => {
      setStartSeconds(Math.random());
    }, 1000);

    return () => clearInterval(interval);
  }, []);

  useEffect(
    () => {
      let raf = null;

      const onFrame = …
Run Code Online (Sandbox Code Playgroud)

javascript frontend reactjs react-hooks

9
推荐指数
3
解决办法
4794
查看次数

标签 统计

javascript ×2

reactjs ×2

frontend ×1

react-hooks ×1