首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React.lazy警告

React.lazy警告
EN

Stack Overflow用户
提问于 2021-09-23 07:05:57
回答 2查看 148关注 0票数 2
代码语言:javascript
复制
// project/src/App.js
import React, { Suspense, lazy } from "react";
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
import {NavBar, Loading} from "./components";
import './index.css';

const Home = lazy(() => import('./components/home'));

function App() {
    return (
        <Router>
            <NavBar/>
            <Suspense fallback={<Loading/>}>
                <Switch>
                    <Route exact path="/" component={Home}/>
                    ...
                </Switch>
            </Suspense>
        </Router>
    );
}

export default App;

另一份文件。

代码语言:javascript
复制
// project/src/components/Home.js
import React from "react";

const Home = () => (
    <div className="home">
       ...
    </div>
);

export default Home;

代码可以工作,但() => import('./components/home')生成此警告

参数类型函数():Promise<{只读默认?:函数():any}>不能分配给参数类型() => Promise<{默认: ComponentType}>类型Promise<{只读默认?:函数():any}>不能分配到Promise<{default: ComponentType}>

我已经读过其他的话题了,但都没有用。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-26 21:12:33

虽然我不喜欢让事情复杂化,但是要删除这个警告,您必须使用以下语法:

代码语言:javascript
复制
const Home = lazy(() => import('./components/Home').then(({default: Home}) => ({default: Home})));
票数 0
EN

Stack Overflow用户

发布于 2021-09-23 07:16:28

懒惰不是React的默认导出。试着用花括号包起来,如下所示:

代码语言:javascript
复制
import {lazy} from "react";

下面是如何使用它

如果是打字稿对你大喊大叫,请检查

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69295369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档