React Native一直说this.lns
未定义,但是我尝试绑定函数renderButtons
。我也进行了多次研究,他们一直在说要添加箭头功能或绑定功能,而我似乎已经尝试过了。我不确定自己在做什么错。
我已经在多个地方尝试过this.renderButtons.bind(this)
,包括组件的构造函数。此时,我不确定该怎么办!
这是错误: 未处理的JS异常:TypeError:TypeError:this.lns未定义
这是菜单文件代码-renderButtons()函数似乎引起了问题。 https://pastebin.com/JN7ERCE7 这是Lessons文件代码: https://pastebin.com/wbt0wrbb
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和React Native的新手。
答案 0 :(得分:1)
将for ( var i =0; i<this.lns.all.length; i++){
中的var更改为let
。
这将创建局部绑定而不是全局绑定,而在循环中该全局绑定将被覆盖。