最近把以前的项目依赖升级一下(React升级到了18.x, antd升级到了5.x),以便看一下新的API更新了什么,在使用antd的message时候发现有时不会显示。 在控制台发现了上面那个提示。
看这个提示应该是antd里面的提示,于是在antd的message组件源码中,找到了这行

1
2
3
4
5
6
if (!holderRef.current) {
        process.env.NODE_ENV !== "production" ? warning(false, 'Message', 'You are calling notice in render which will break in React 18 concurrent mode. Please trigger in effect instead.') : void 0;
        const fakeResult = () => {};
        fakeResult.then = () => {};
        return fakeResult;
}

意思是没有 这个golderRef才会提示这个问题
发现在显示message时会在根目录下创建一个div元素,提醒完后就会移除这个div image.png

image.png