我是React-native的新手,我试图将dialogflow与react-native集成。
我的代码是:
import React, {Component} from 'react';
import { StyleSheet, View, Button } from 'react-native';
import { Dialogflow_V2 } from "react-native-dialogflow";
class App extends Component() {
constructor(props) {
super(props);
Dialogflow_V2.setConfiguration(
"sample.iam.gserviceaccount.com",
'-----BEGIN PRIVATE KEY-----\sample\n-----END PRIVATE KEY-----\n"',
Dialogflow_V2.LANG_ENGLISH,
'sample-44ce3'
);
}
render() {
const { dialogflow } = this.props.Dialogflow_V2;
return (
<View style={styles.container}>
<Button onPress={() => {
dialogflow.requestQuery("hello", result=>console.log(result), error=>console.log(error));
}}
/>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
});
export default App;
但这显示了这个错误
谁能向我解释这到底是什么问题,需要什么纠正? 预先感谢。
答案 0 :(得分:2)
更改此:
Task
为此:
class App extends Component() {}
答案 1 :(得分:1)
那是因为它无法从道具中找到 Dialogflow_V2 参考。
在渲染函数中删除此行
const { dialogflow } = this.props.Dialogflow_V2;
直接使用已经导入的 Dialogflow_V2 。
Dialogflow_V2.requestQuery("hello", result=>console.log(result), error=>console.log(error));
答案 2 :(得分:0)
您在应用程序组件中未收到任何Dialogflow_V2道具,因此显示错误。只需替换以下行,我认为这会起作用
const { dialogflow } = this.Dialogflow_V2;