Javascript 即使在绑定函数后也没有定义this.variable?
React Native一直说没有定义this.lns,但我已经尝试绑定函数renderButtons。我也研究过多次,他们一直说要添加箭头函数或绑定函数,我似乎已经尝试过了。我不确定我做错了什么 我已经在多个地方尝试过this.renderButtons.bindthis,包括我的组件的构造函数。在这一点上,我不知道该怎么办 以下是错误: 未处理的JS异常:TypeError:TypeError:this.lns未定义 这是菜单文件代码-renderButtons函数似乎引起了问题。 这是课程文件代码: renderButtons功能:Javascript 即使在绑定函数后也没有定义this.variable?,javascript,node.js,react-native,react-native-ios,Javascript,Node.js,React Native,React Native Ios,React Native一直说没有定义this.lns,但我已经尝试绑定函数renderButtons。我也研究过多次,他们一直说要添加箭头函数或绑定函数,我似乎已经尝试过了。我不确定我做错了什么 我已经在多个地方尝试过this.renderButtons.bindthis,包括我的组件的构造函数。在这一点上,我不知道该怎么办 以下是错误: 未处理的JS异常:TypeError:TypeError:this.lns未定义 这是菜单文件代码-renderButtons函数似乎引起了问题。 这是课程
renderButtons(){
const views = [];
views.push(
<Text key="free_label" style={{fontSize: 18}}>Free Fundemental Lessons: </Text>
);
for ( var i =0; i<this.lns.free.length; i++){
views.push(
<Button
key={"freeLesson_" + String(i)}
onPress={() => this.createLessonView.bind(this, () => this.lns.free[i])}
title={() => this.lns.free[i].title}
color="#000000"
/>);
console.log(() => this.lns.free[i].title);
}
views.push(
<Text key={"premiumLabel"} style={{fontSize: 18}}>Premium Lessons: </Text>
);
for ( var i =0; i<this.lns.all.length; i++){
views.push(
<Button
key={"premiumLesson_" + String(i)}
onPress={() => this.createLessonView.bind(this, () => this.lns.all[i])}
title={() => this.lns.all[i].title}
color="#841584"
/>);
}
return (
<View style={styles.container}>
{views}
</View>
);
};
我希望我的应用程序在XCode中的模拟器中输出:
免费基础课程:
此处以按钮形式列出课程
高级课程:
这里有高级课程列表
我对StackOverflow有点陌生,顺便说一下,我的反应是原生的。在for var I=0中更改var;在snipplet中,我们看到lns设置在哪里了。好的,那么this.lns=LessonHandler.getLessons;在外部源代码中显示它。renderButtons=this.renderButtons.bindthis;两次,去掉rendery中的一个。你不应该绑定render,这是一种生命周期方法。我在pastebin上发布了其余的代码,因为堆栈溢出告诉我不应该在这里发布全部代码。lessons文件并不重要,因为整个错误指向renderButtons函数。谢谢,它确实更改了此错误。lns未定义为无法读取未定义的属性。我现在要再次检查代码。嘿,给你:。为将来创建沙盒的问题示例,而不是复制粘贴。太棒了!谢谢,这确实帮助很大,但是,对于我当前的代码,我有一个新问题,它在菜单中打印出{all:[],free:[]}。它应该像以前一样打印出课程,在我的课程文件中打印出课程。我应该在这里编辑我的帖子还是在StackOverflow上创建一个新的问题?