作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 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/
我使用 WebChat 作为我的机器人的 Web 界面,我想在用户单击重置按钮时重置对话。我关注了这个question但商店不会重置用户界面,只有直线重新连接。 我有这个错误:在 forkPut Ty
我是一名优秀的程序员,十分优秀!