Json React Native Undefined不是对象(正在计算此.state.input';)

Json React Native Undefined不是对象(正在计算此.state.input';),json,react-native,import,require,react-native-android,Json,React Native,Import,Require,React Native Android,我正在努力建立一个单词词典,通过以下方式将英语单词翻译成德语单词。它使用了一个json文件,我相信,该文件包含以英语单词及其对应的德语单词作为值的键 本教程使用require语句var english_derman=require('./english_derman.json')但是我想知道是否有一种替代方法,使用import语句 不过,我面临的主要问题是,当我在TextInput中键入一个单词并按enter键时,会出现“Undefined不是对象(计算'this.state.input')”错

我正在努力建立一个单词词典,通过以下方式将英语单词翻译成德语单词。它使用了一个json文件,我相信,该文件包含以英语单词及其对应的德语单词作为值的键

  • 本教程使用require语句
    var english_derman=require('./english_derman.json')
    但是我想知道是否有一种替代方法,使用import语句

  • 不过,我面临的主要问题是,当我在TextInput中键入一个单词并按enter键时,会出现“Undefined不是对象(计算'this.state.input')”错误

  • 我的源代码如下:

    import React,{Component}来自'React';
    进口{
    评估学,
    形象
    样式表,
    文本
    文本输入,
    看法
    }从“反应本机”;
    var english_derman=require('./english_derman.json');
    类字典扩展组件{
    建造师(道具){
    超级(道具);
    此.state={
    输入:“”,
    输出:“”
    }
    }
    showmeans(){
    //使用三元运算符检查单词
    //存在于字典中。
    var MEANCE=英语\德语的this.state.input?
    英语\德语[此.state.input]:
    “未找到”;
    //更新状态
    this.setState({output:means});
    }
    render(){
    变量布局=
    用英语输入:
    this.setState({input:e})}
    text={this.state.input}
    onSubmitEditing={this.showMeans}
    />
    它的德国等价物是:
    {this.state.output}
    ;
    返回布局;
    }
    }
    const styles=StyleSheet.create({
    //对于容器视图
    家长:{
    填充:16
    },
    //用于文本标签
    德国标签:{
    玛金托普:20,
    fontWeight:“粗体”
    },
    //对于文本意义
    德国字:{
    玛金托普:15,
    尺寸:30,
    字体:“斜体”
    }
    });
    
    AppRegistry.registerComponent('Dictionary',()=>Dictionary)这是因为您指的是
    showMeans
    中的
    This
    。将该函数绑定到右
    this
    内部
    constructor
    中,就像这样
    this.showmaning=this.showmaning.Bind(this)


    我强烈建议你阅读React的基础知识。例如,这里有针对您的问题的文档:

    这是因为您指的是
    中的
    This
    。将该函数绑定到右
    this
    内部
    constructor
    中,就像这样
    this.showmaning=this.showmaning.Bind(this)


    我强烈建议你阅读React的基础知识。例如,以下是针对您的问题的文档:

    这是一个绑定问题,请将其添加到构造函数中:

    this.showMeaning = this.showMeaning.bind(this);
    
    这将确保
    方法中的
    这个
    对象引用了
    字典
    组件。或者,您可以在
    showMeans
    方法中使用箭头函数,如下所示:

    showMeaning = () => { /* rest of code */ }
    

    箭头函数保留
    的上下文。因此,不需要使用
    bind

    这是一个绑定问题,请在构造函数中添加:

    this.showMeaning = this.showMeaning.bind(this);
    
    这将确保
    方法中的
    这个
    对象引用了
    字典
    组件。或者,您可以在
    showMeans
    方法中使用箭头函数,如下所示:

    showMeaning = () => { /* rest of code */ }
    

    箭头函数保留
    的上下文。因此,不需要使用
    bind

    您也可以使用箭头语法自动绑定:
    showmanings=()=>{//Method here}
    @AndrewBreen如果没有绑定,“this”指的是什么?这取决于,它可能指的是其他组件,但要确保最好是console.log。@D-reaper我该如何console.log它?请原谅我的无知,这是我第一次在你的
    showMeans
    方法中使用安卓app.put
    console.log(this.state)
    ,并查看chrome控制台中的输出。这里提供了详细的解释:。您还可以使用箭头语法自动绑定:
    showmaning=()=>{//Method here}
    @AndrewBreen如果没有绑定,“this”指的是什么?这取决于它可能指的是其他组件,但要确保它最好是console.log。@D-reaper我该如何console.log它?请原谅我的无知,这是我第一次在你的
    showMeans
    方法中使用安卓app.put
    console.log(this.state)
    ,并查看chrome控制台中的输出。详细说明可在此处找到:。