Skip to content

问题记录

Posted on:October 11, 2023 at 02:05 PM
预计阅读时长:3 min read 字数:519

echarts graph关系图报错

Cannot set properties of undefined (setting ‘dataIndex‘)
  links: [{
      source: 4,
      target: 3,
  },]

改为

  links: [{
      source: '4',
      target: '3',
  },]

在 React 中,useState 中的 setState 可能会出现延迟生效的情况,这通常是因为 React 的渲染周期和事件循环的运行周期不同步

当组件渲染时,React 会先执行 useState 中的 setState 操作,但是这个操作不会立即生效,而是会被延迟到下一个事件循环中执行。这是因为 React 的渲染周期是同步的,而事件循环是异步的,因此在事件循环中执行的 setState 操作可能会在下一个事件循环开始时生效。

为了避免这种情况,我们可以使用 useEffect 来处理 setState 的延迟生效问题。useEffect 会在组件渲染后执行传入的函数,通常用于处理副作用,如 setState 的副作用。

下面是一个简单的例子,展示了如何使用 useEffect 来确保 setState 的立即生效:

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

function Example() {
 const [count, setCount] = useState(0);

 useEffect(() => {
   console.log('Count updated:', count);
 }, [count]);

 const increment = () => {
   setCount(count + 1);
 };

 return (
   <div>
     <p>Count: {count}</p>
     <button onClick={increment}>Increment</button>
   </div>
 );
}

export default Example;

在这个例子中,我们使用 useEffect 来处理 setCount 的副作用,确保在每次 setCount 时都立即执行副作用函数 console.log。这样就可以避免 setCount 的延迟生效问题。

react源码本地npm i 报错...Command failed: autoreconf -ivf...

brew install autoconf automake libtool

autoreconf 是一个用于自动配置 GNU 软件包的工具,通常在安装或更新源代码包时会自动调用。

gitaction 执行build 命令报错javascript heap out of memory

一开始更改action中的build命令,添加increase-memory-limit,命令中添加cross-env,例如cross-env LIMIT=2048 increase-memory-limit,这样只是添加运行内存大小,并没有实质解决问题

后来分析提交的文件,才知道是mdx文件太大了,mdx需要做很多js处理,如果不引入组件,其实完全没必要使用mdx,改成md就好了