Reactjs 如何使用Dialogflow实现聊天机器人,并使用功能组件进行本机反应
我正在使用react native normal workflow(不是expo),而且我的项目基于功能组件类型(没有类组件),所以如何实现它。我使用了react native天才聊天npm软件包。。我的dilogflow api正在工作,但是消息索引没有更新,因此我丢失了一些消息 这是我的密码Reactjs 如何使用Dialogflow实现聊天机器人,并使用功能组件进行本机反应,reactjs,react-native,dialogflow-es,react-native-gifted-chat,Reactjs,React Native,Dialogflow Es,React Native Gifted Chat,我正在使用react native normal workflow(不是expo),而且我的项目基于功能组件类型(没有类组件),所以如何实现它。我使用了react native天才聊天npm软件包。。我的dilogflow api正在工作,但是消息索引没有更新,因此我丢失了一些消息 这是我的密码 import React, { useState, useCallback, useEffect } from 'react' import { View } from 'react-native' i
import React, { useState, useCallback, useEffect } from 'react'
import { View } from 'react-native'
import { GiftedChat } from 'react-native-gifted-chat'
import { Dialogflow_V2 } from 'react-native-dialogflow';
import { dialogFlowConfig } from '../../config'
import styles from './styles'
export default function chatScreen(props) {
const dabbaBot = {
_id: 2,
name: 'React Native',
avatar: 'https://placeimg.com/140/140/any',
}
let welcomeMessage = {
_id: 0,
text: 'Hellooooo....How are you',
createdAt: new Date(),
user: dabbaBot
}
const [messages, setMessages] = useState([welcomeMessage]);
const [messagelength, setMessageLength] = useState(0);
useEffect(() => {
Dialogflow_V2.setConfiguration(
dialogFlowConfig.client_email,
dialogFlowConfig.private_key,
Dialogflow_V2.LANG_ENGLISH_US,
dialogFlowConfig.project_id
);
}, [])
function sendBotResponse(text) {
let messageLength = messages.length + 2
let msg = {
_id: messageLength + 1,
text,
createdAt: new Date(),
user: dabbaBot
};
console.log(msg._id)
setMessages(messages);
setMessages(previousMessages => GiftedChat.append(previousMessages, [msg]));
}
function handleGoogleResponse(result) {
let text = result.queryResult.fulfillmentMessages[0].text.text[0];
sendBotResponse(text);
}
const onSend = useCallback((messages = []) => {
let messageLength = messages.length + 1
let modifiedMessage = {
text: messages[0].text,
user: messages[0].user,
_id: messageLength + 1,
createdAt: new Date()
}
console.log(modifiedMessage._id)
// // messages = messages.push(modifiedMessage)
// // setMessages(messages)
// setMessages(previousMessages => GiftedChat.append(previousMessages, [modifiedMessage]));
setMessages(messages);
setMessages(previousMessages => GiftedChat.append(previousMessages, [modifiedMessage]));
let message = messages[0].text;
console.log(message)
Dialogflow_V2.requestQuery(
message,
result => handleGoogleResponse(result),
error => console.log(error)
);
}, [])
return (
<View style={styles.maincontainer}>
<GiftedChat
messages={messages}
onSend={messages => onSend(messages)}
user={{
_id: 1
}}
/>
</View>
)
}
import React,{useState,useCallback,useffect}来自“React”
从“react native”导入{View}
从“react native gifted chat”导入{GiftedChat}
从“react native Dialogflow”导入{Dialogflow_V2};
从“../../config”导入{dialogFlowConfig}
从“./styles”导入样式
导出默认功能聊天屏(道具){
常数dabbaBot={
_id:2,
名称:“反应本机”,
阿凡达:'https://placeimg.com/140/140/any',
}
让welcomeMessage={
_id:0,
短信:“你好……你好吗”,
createdAt:新日期(),
用户:dabbaBot
}
const[messages,setMessages]=useState([welcomeMessage]);
const[messagelength,setMessageLength]=useState(0);
useffect(()=>{
Dialogflow_V2.setConfiguration(
dialogFlowConfig.client_电子邮件,
dialogFlowConfig.private_密钥,
Dialogflow_V2.LANG_ENGLISH_US,
dialogFlowConfig.project\u id
);
}, [])
函数sendBotResponse(文本){
让messageLength=messages.length+2
让msg={
_id:messageLength+1,
文本,
createdAt:新日期(),
用户:dabbaBot
};
console.log(msg.\u id)
设置消息(消息);
setMessages(previousMessages=>giftechat.append(previousMessages,[msg]);
}
函数handleGoogleResponse(结果){
让text=result.queryResult.fulfillmentMessages[0].text.text[0];
发送响应(文本);
}
const onSend=useCallback((messages=[])=>{
让messageLength=messages.length+1
让modifiedMessage={
文本:消息[0]。文本,
用户:消息[0]。用户,
_id:messageLength+1,
createdAt:新日期()
}
console.log(modifiedMessage.\u id)
////messages=messages.push(modifiedMessage)
////设置消息(消息)
//setMessages(previousMessages=>GiftedChat.append(previousMessages,[modifiedMessage]);
设置消息(消息);
setMessages(previousMessages=>GiftedChat.append(previousMessages,[modifiedMessage]);
让消息=消息[0]。文本;
console.log(消息)
Dialogflow_V2.requestQuery(
消息
结果=>handleGoogleResponse(结果),
error=>console.log(错误)
);
}, [])
返回(
onSend(消息)}
使用者={{
_身份证号码:1
}}
/>
)
}
你找到解决方案了吗?@pragnesh没有我没有找到任何解决方案你找到任何解决方案了吗?@pragnesh没有我没有找到任何解决方案