React-Native:undefined不是对象(评估'this.props = props')

时间:2019-06-09 09:01:26

标签: react-native dialogflow

我是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;

但这显示了这个错误

enter image description here

谁能向我解释这到底是什么问题,需要什么纠正? 预先感谢。

3 个答案:

答案 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;