Я пытаюсь добавить функцию автозаполнения / автозаполнения в мой чат-фреймворк для бот-фреймворков (v-4) с помощью реакции js. В котором я хочу получить входные данные из таблицы azure. Слышал, что не рекомендуется использовать j-запрос внутри React js. Ищете решение, чтобы добавить это.
Я ищу решение, как на рисунке ниже, PFA. И код, который я использовал для React, прикреплен ниже:
React.js file
import React from 'react';
import { DirectLine, ConnectionStatus } from 'botframework-directlinejs';
import ReactWebChat from 'botframework-webchat';
import './ChatComponent.css';
export default class extends React.Component {
constructor(props) {
super(props);
this.state = {
token: '',
conversationId:'',
directLine: {},
view: false,
feedBack: null,
value: '',
popupContent: '',
storeValue:''
};
this.handleTokenGeneration = this.handleTokenGeneration.bind(this);
this.handleChange = this.handleChange.bind(this);
}
handleTokenGeneration = async () => {
console.log("handleTokenGeneration");
const response = await fetch(`api/TokenGenerationService/GetToken`);
const data = await response.json();
this.setState({ token: data.categoryObject.token, conversationId: data.categoryObject.conversationId });
console.log("conversationId");
};
async componentDidMount() {
try {
await this.handleTokenGeneration();
} catch (error) {
console.log("error in fetchung token");
console.log(error);
}
this.state.directLine = new DirectLine({ token: this.state.token });
this.setState({ view: true });
}
handleChange = (event) => {
this.setState({ value: event.target.value });
}
render() {
if (!this.state.view) {
return <div />
} else {
return (
<div className="react-container webchat" >
<ReactWebChat directLine={this.state.directLine} webSocket={true} userID='2656' username='res' store={this.state.storeValue} />
<footer className="chat-footer" >
<div className="foot-footer">
Was I helpful ?
<span className="feedback" >Yes</span><span>|</span><span className="feedback" >No</span>
</div>
</footer>
</div>
);
}
}
}