gpt4 book ai didi

javascript - 在 webCaht UI 中重置对话

转载 作者:行者123 更新时间:2023-12-02 22:32:07 29 4
gpt4 key购买 nike

我使用 WebChat 作为我的机器人的 Web 界面,我想在用户单击重置按钮时重置对话。我关注了这个question但商店不会重置用户界面,只有直线重新连接。 我有这个错误:在 forkPut TypeError 中未捕获:无法读取未定义的属性“错误”

  • 我的代码
import React, { useState, useEffect } from 'react';
import ReactWebChat, { createDirectLine, createStore } from 'botframework-webchat';
import directLineDisconnect from 'botframework-webchat-core/lib/actions/disconnect';
import './fabric-icons-inline.css';
import './MinimizableWebChat.css';


const initializeDirectLine = async setDirectLine => {
setDirectLine(createDirectLine({ token }));
};

const WebChat = props => {
const { directLine, store } = props;
console.log('DL : '); console.log(directLine);
return directLine
? <ReactWebChat className={'react-web-chat'} {...props} />
: "Connecting..."
};

export default () => {
console.log('DL create req ');
const [directLine, setDirectLine] = useState();
useEffect(() => {
initializeDirectLine(setDirectLine);
}, []);

const storeMiddleware = () => next => action => {
console.log(action.type);
if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {
store.dispatch({
type: 'WEB_CHAT/SEND_EVENT',
payload: {
name: 'webchat/NewConnect',
value: {
language: document.documentElement.lang || window.navigator.language
}
}
});
}
else if (action.type === 'DIRECT_LINE/DISCONNECT_FULFILLED') {
console.log("---> DIRECT_LINE/DISCONNECT_FULFILLED");
setDirectLine(null);
console.log("---> 1");
setStore(createStore({}, storeMiddleware));
console.log("---> 2");
initializeDirectLine(setDirectLine);
console.log("---> 3");
}
return next(action);
};

const [store, setStore] = useState(createStore({}, storeMiddleware));

const disconnect = () => store.dispatch(directLineDisconnect());

return (
<div className="minimizable-web-chat">
<div className='chat-box right bottom'>
<button onClick={disconnect}>Disconnect</button>
<WebChat className='react-web-chat'
directLine={directLine} store={store} />
</div>
</div>
)
};

最佳答案

看看Clear After Idle网络聊天示例。它展示了如何清除记录历史记录并与机器人创建新的对话。请注意,您必须使用最新版本的 Web Chat(版本 4.6.0)才能使该示例正常工作。旧版本有一个错误,不允许您在没有“forkPut”类型错误的情况下更改商店。

关于javascript - 在 webCaht UI 中重置对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58859031/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com