反应本机。参考错误值未定义
react-native. Reference Error value is not defined
我在 react-native 中设置状态时遇到问题。我可以 console.log 这个值就好了,但是当我调用 setState() 时,我得到 Reference error 'targetSpreadsheet' is not defined.
这是在下面的函数中
getCategories = (file) => {
console.log(this.state.targetSpreadsheet); // works fine
this.setState({targetSpreadsheet: file}); // targetSpreadsheet is not defined.
}
还有一个调用它的选择器
<SimplePicker
ref={'picker2'}
options={this.state.spreadsheetNames}
onSubmit={(option) => {
for(var i = 0; i < this.state.spreadsheets.files.length; i++){
if(this.state.spreadsheets.files[i].name === option){
let file = this.state.spreadsheets.files[i];
this.getCategories(file);
break;
}
}
}}
/>
编辑
构造函数
constructor(props){
super(props);
this.state = {
targetSpreadsheet: ''
}
this.getCategories = this.getCategories.bind(this);
}
这表明您想要访问其中包含 文件数组 的电子表格 对象
this.state.spreadsheets.files[I]
但是在您的构造函数中,您已经将 targetSpreadsheet
初始化为字符串对象,因此出现错误。
this.state = {
targetSpreadsheet: ''
}
解决方法:需要做成一个object,files为一个空数组
this.state = {
targetSpreadsheet: {
files:[]
}
}
我在 react-native 中设置状态时遇到问题。我可以 console.log 这个值就好了,但是当我调用 setState() 时,我得到 Reference error 'targetSpreadsheet' is not defined.
这是在下面的函数中
getCategories = (file) => {
console.log(this.state.targetSpreadsheet); // works fine
this.setState({targetSpreadsheet: file}); // targetSpreadsheet is not defined.
}
还有一个调用它的选择器
<SimplePicker
ref={'picker2'}
options={this.state.spreadsheetNames}
onSubmit={(option) => {
for(var i = 0; i < this.state.spreadsheets.files.length; i++){
if(this.state.spreadsheets.files[i].name === option){
let file = this.state.spreadsheets.files[i];
this.getCategories(file);
break;
}
}
}}
/>
编辑
构造函数
constructor(props){
super(props);
this.state = {
targetSpreadsheet: ''
}
this.getCategories = this.getCategories.bind(this);
}
这表明您想要访问其中包含 文件数组 的电子表格 对象
this.state.spreadsheets.files[I]
但是在您的构造函数中,您已经将 targetSpreadsheet
初始化为字符串对象,因此出现错误。
this.state = {
targetSpreadsheet: ''
}
解决方法:需要做成一个object,files为一个空数组
this.state = {
targetSpreadsheet: {
files:[]
}
}