小编Ste*_*han的帖子

如何在 Next.js 中使用动态导入和命名导出?

我有这个反应组件。它对我来说效果很好。

import { Widget } from 'rasa-webchat';

function CustomWidget(){
    return (
        <Widget
        initPayload={"payload"}
        socketPath={"/socket.io/"}
        customData={{"language": "en"}}
        />
    )
}
export default CustomWidget;
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在 next.js 网站上使用它时,它无法工作。

它给我一个窗口未定义错误。

我想我通过使用动态导入器解决了这个特定的错误:

import dynamic from "next/dynamic";

const webchat = dynamic(
  () => {
    return import('rasa-webchat');
  },
  { ssr: false }
);
Run Code Online (Sandbox Code Playgroud)

但现在我不知道如何实际使用包中的小部件组件。

我可以这样做import { Widget } from 'rasa-webchat'还是由于某种原因这与 next.js 不兼容?如果可以的话我该怎么做?

reactjs next.js

2
推荐指数
1
解决办法
2392
查看次数

等待不是等待吗?

嗨,我有两个功能。它们在另一个函数中被调用。我需要在第一个函数完成后执行第二个函数。

对不起,这可能是一个非常简单的问题,但我仍然试图围绕 js 中的 Promise 和 async/await 进行思考。谁能帮我弄清楚为什么这不起作用。

async function addDetails(){
    const sub = await getSession();
    // now wait for firstFunction to finish...
    addProfileDetails(sub);
  };
Run Code Online (Sandbox Code Playgroud)

我在两者中都有调试/日志记录。所以我知道在定义变量 sub 之前正在执行 addProfileDetails 。

我正在使用 react native 和 node.js

编辑:

export function getSession() {
  console.log("checking user ...............................................")
  Auth.currentSession().then(res=>{
      console.log("retrieving token");
      let accessToken = res.getAccessToken()
      let payload = accessToken.payload;
      console.log(`sub: ${payload.sub}`)
      return payload.sub
  }) 
};
Run Code Online (Sandbox Code Playgroud)

这是我的 getSession() 函数。它也需要异步吗?

javascript node.js react-native

0
推荐指数
1
解决办法
323
查看次数

标签 统计

javascript ×1

next.js ×1

node.js ×1

react-native ×1

reactjs ×1