Json React Native Undefined不是对象(正在计算此.state.input';)
我正在努力建立一个单词词典,通过以下方式将英语单词翻译成德语单词。它使用了一个json文件,我相信,该文件包含以英语单词及其对应的德语单词作为值的键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')”错
var english_derman=require('./english_derman.json')
但是我想知道是否有一种替代方法,使用import语句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.putconsole.log(this.state)
,并查看chrome控制台中的输出。这里提供了详细的解释:。您还可以使用箭头语法自动绑定:showmaning=()=>{//Method here}
@AndrewBreen如果没有绑定,“this”指的是什么?这取决于它可能指的是其他组件,但要确保它最好是console.log。@D-reaper我该如何console.log它?请原谅我的无知,这是我第一次在你的showMeans
方法中使用安卓app.putconsole.log(this.state)
,并查看chrome控制台中的输出。详细说明可在此处找到:。