如何在React组件中动态加载js脚本

网上找了很多方案,比如react-helmet等各种包,都不行。

从原理上,他们都是类似如下的原生方案:
const script = document.createElement("script");
script.src = url;
document.head.appendChild(script);
这种方案是存在问题的,script是异步加载的,不等加载完毕直接往下执行,是找不到对象的。

这里给出最终解法:在onload回调中再渲染。
interface Prop[......]

继续阅读

使用AntDesign的MenuItem如何再集成React Router

新版AntD已经不能使用MenuItem了,而是需要传入数据,这样使用React Router会有点麻烦。

解决方案是给Menu做一个click事件,里面再使用useNavigate分发路由,如下:
import { Breadcrumb, Layout, Menu } from 'antd';
import React, { Fragment } from 'react';
import {
Routes,
Route,
useNavigate
} from "[......]

继续阅读