我有这个反应组件。它对我来说效果很好。
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 不兼容?如果可以的话我该怎么做?
嗨,我有两个功能。它们在另一个函数中被调用。我需要在第一个函数完成后执行第二个函数。
对不起,这可能是一个非常简单的问题,但我仍然试图围绕 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() 函数。它也需要异步吗?