typescript 类型脚本+延迟React

iq3niunx  于 2023-01-27  发布在  TypeScript
关注(0)|答案(4)|浏览(201)
const Game = React.lazy(() => new Promise( (resolve) => {
    setTimeout( () => resolve(import('./Game')) , 1000)
}))

错误:错误:(6,35)TS 2345:类型为“Promise〈导入类型(“D:/PROGECTS/SnakeReactReduxTS/snake-react-redux-ts/src/Components/Stages/Game”)〉"的参数不能分配给类型为“{默认值:从不; }|类似承诺〈{默认值:从不; }〉|类型“承诺〈导入类型(“D:/PROGECTS/SnakeReactReduxTS/snake-react-redux-ts/src/Components/Stages/Game”)〉"不能分配给类型“类似承诺〈{默认值:属性“then”的类型不兼容。类型“〈TResult 1 =导入类型(“D:/PROGECTS/SnakeReactReduxTS/snake-react-redux-ts/src/Components/Stages/Game”),TResult 2 =从不〉(是否已实现?:((值:导入类型(“D:/PROGECTS/蛇React还原型TS/蛇React还原型ts/源代码/组件/阶段/游戏”))=〉TResult 1|类似<...>承诺)|零|未定义,是否拒绝?:((reaso...“不能赋值给类型”〈TResult 1 = {默认值:从不; },TResult 2 =从不〉(是否已履行?:((值:{默认值:从不; })=〉TResult 1|类似承诺)|零|未定义,是否拒绝?:((原因:任何)=〉T结果2|类似<...>承诺)|零|undefined)=〉PromiseLike<...>“。参数”onfulfuled“和”onfulfuled“的类型不兼容。参数”value“和”value“的类型不兼容。类型”typeof import(“D:/PROGECTS/SnakeReactReduxTS/snake-react-redux-ts/src/Components/Stages/Game”)“中缺少属性”default“,但类型”{ default:从不;}'。
他想从我这里得到什么?

pnwntuvh

pnwntuvh1#

lazy函数返回{默认值:...}对象,该对象被异步调用,并且将await,直到承诺未被解析为止,该对象被延迟1000 ms,并且最终将导入Game组件并将其返回。

const Game = React.lazy(async () => {
      await new Promise(resolve => setTimeout(resolve, 1000));
      return import('./Game');
    });

希望这有帮助!!

lsmepo6l

lsmepo6l2#

他想从我这里得到什么?
你想从他身上得到什么?
React.lazy的用法应该是:

const Game = React.lazy(() => import('./Game'));

你可能有一个更具体的用例(告诉我们),但基本的用法是这样的。
我邀请您阅读文档www.example.comhttps://reactjs.org/docs/code-splitting.html#reactlazy

j8ag8udp

j8ag8udp3#

const Game = React.lazy(() => import('./Game'))

你已经试过这个了

fruv7luv

fruv7luv4#

React.lazy需要默认导出。如果您的'./Game'不是export default,则此操作将不起作用。
您可以尝试这样做(我猜您要导出'./Game'文件中名为Game的组件),否则,使用默认导出。

const Game = React.lazy(() => new Promise( (resolve) => {
    setTimeout( () => resolve({default: import('./Game').Game}) , 1000)
}))

相关问题