Javascript ReactJS-onClick不调用function inside map()函数
我是新手,不知道如何通过映射循环上的onClick调用内部函数。让我告诉你:Javascript ReactJS-onClick不调用function inside map()函数,javascript,reactjs,loops,dictionary,onclick,Javascript,Reactjs,Loops,Dictionary,Onclick,我是新手,不知道如何通过映射循环上的onClick调用内部函数。让我告诉你: const changeLang = lang => { i18n.changeLanguage(lang); }; 我有这个职能谁是负责让我的语言,如英语或葡萄牙语。我试图用下面的代码来改变语言,这取决于我从菜单中选择的菜单项。为此,我有以下代码: const languages = [ { value: 'pt', label: 'Portuguese', },
const changeLang = lang => {
i18n.changeLanguage(lang);
};
我有这个职能谁是负责让我的语言,如英语或葡萄牙语。我试图用下面的代码来改变语言,这取决于我从菜单中选择的菜单项。为此,我有以下代码:
const languages = [
{
value: 'pt',
label: 'Portuguese',
},
{
value: 'en',
label: 'English',
}
];
...
{languages.map(option => (
<MenuItem key={option.value} value={option.value} onClick={() => this.changeLang (option.value)}>
{option.label}
</MenuItem>
))}
问题是它不能进入我的函数changeLang,所以没有选择语言,根本没有效果。我尝试了console.log,但没有得到任何回报。我很确定问题出在onClick={=>this.changeLang option.value},但我不知道为什么。您能帮助我吗?这是一个功能组件,所以您需要调用changeLang而不是This。changeLang如果这是功能组件,请删除此关键字并直接调用changeLang函数
languages.map(option => (
<MenuItem key={option.value} value={option.value} onClick={() => changeLang(option.value)}>
{option.label}
</MenuItem>
))
您在控制台中看到了什么类型的错误 我马上发现你的changeLang有一个可能的问题:你没有从中返回任何东西。仅当不使用大括号语法时,Arrow函数才具有隐式返回: 我也看到了这个错误:
this.changeLang (option.value)
应该是
this.changeLang(option.value)
函数调用与其参数之间没有空格
也许你可以尝试这些调查方法,和/或发布更多关于你的组件的详细信息。这是一个功能组件吗?是的,我只是没有介绍所有代码,因为它对这个问题毫无用处。你能检查一下“this”是否有“changeLang”功能吗。您可以通过这个onClick={=>console.logthis.changeLang}来完成它。这是一个基于类的组件吗。。。什么都没有发生。你能详细说明什么都没有发生吗?当我点击菜单项时,什么都没有发生,比如没有操作没有控制台.log。它只是没有进入函数changeLang。您是否配置了react-I18Nextca?您是否可以在沙箱中复制问题并共享它?先生,没有发生任何错误先生,它只是没有调用函数changeLang。您是否也尝试过修复错误?正如其他人所提到的,我们需要看到整个组件以提供更多帮助。