gpt4 book ai didi

javascript - 即使在绑定(bind)函数之后 this.variable 也没有定义?

转载 作者:行者123 更新时间:2023-12-02 23:53:26 25 4
gpt4 key购买 nike

React Native 一直说 this.lns 未定义,但我尝试绑定(bind)函数 renderButtons。我也研究过多次,他们一直说添加箭头函数或绑定(bind)函数,我似乎已经尝试过。我不确定我做错了什么。

我已经在多个地方尝试了 this.renderButtons.bind(this),包括我的组件的构造函数。此时我不知道该怎么办!

错误如下:未处理的 JS 异常:TypeError:TypeError:this.lns 未定义

这是菜单文件代码 - renderButtons() 函数似乎导致了问题。 https://pastebin.com/JN7ERCE7这是类(class)文件代码: 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 中的模拟器中输出:免费基础类(class):(此处为类(class)列表按钮)高级类(class):(此处为高级类(class)列表)

顺便说一句,我对 StackOverflow 和 React Native 还算陌生。

最佳答案

更改 for ( var i =0; i<this.lns.all.length; i++){ 中的变量至let 。这将创建本地绑定(bind)而不是全局绑定(bind),后者在循环中被覆盖。

关于javascript - 即使在绑定(bind)函数之后 this.variable 也没有定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55541126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com