Javascript React Flux Uncaught TypeError:_LocalityStore2.default.setSelectedLocality不是函数

Javascript React Flux Uncaught TypeError:_LocalityStore2.default.setSelectedLocality不是函数,javascript,flux,reactjs-flux,Javascript,Flux,Reactjs Flux,我有HomeLayout,从那里我被重定向到MobileLocalityLayout,它有一个方法selectLocality,单击一个名为“set locality”的链接,将locality值设置为LocalityStore。现在,只要我选择了Location,我就会被重定向到HomeLayout,然后如果再次按下Location按钮并选择Location,我会得到以下错误: Uncaught TypeError: _LocalityStore2.default.setSelectedLoc

我有HomeLayout,从那里我被重定向到MobileLocalityLayout,它有一个方法selectLocality,单击一个名为“set locality”的链接,将locality值设置为LocalityStore。现在,只要我选择了Location,我就会被重定向到HomeLayout,然后如果再次按下Location按钮并选择Location,我会得到以下错误:

Uncaught TypeError: _LocalityStore2.default.setSelectedLocality is not a function
但是LocalityStore具有函数
setSelectedLocality

代码片段:

家庭布局:

<span class='selectLocalityBtn'><Link to="/selectLocality">Set Locality</Link></span>
地点商店:

setSelectedLocality(locality){
    this.setSelectedLocality = locality;
}
我是否以错误的方式实现了通量。我不明白什么是
\u LocalityStore2
,因为我有LocalityStore而没有LocalityStore2。请提供帮助。

根据名称约定,您似乎在类上调用setSelectedLocality,而不是实例。导出LocalityStore时,创建它的实例,然后对其调用方法。像这样:

const localityStore = new LocalityStore();
dispatcher.register(localityStore.handler.bind(localityStore));
export default localityStore;
关于此名称更改(LocalityStore改为_LocalityStore2)。我猜您正在使用
babel react loader
或类似的东西将代码传输到ES5。这会导致对原始代码进行一些更改,但这不是问题。

看起来(按照名称约定)您在类上调用setSelectedLocality,而不是在实例上。导出LocalityStore时,创建它的实例,然后对其调用方法。像这样:

const localityStore = new LocalityStore();
dispatcher.register(localityStore.handler.bind(localityStore));
export default localityStore;

关于此名称更改(LocalityStore改为_LocalityStore2)。我猜您正在使用
babel react loader
或类似的东西将代码传输到ES5。这会导致对原始代码进行一些更改,但这不是问题。

您的代码中有输入错误

setSelectedLocality(locality){
    this.setSelectedLocality = locality;
}

请用this.selectedLocality替换this.selectedLocality

您的代码中有一个输入错误

setSelectedLocality(locality){
    this.setSelectedLocality = locality;
}

请用this.selectedLocality替换this.selectedLocality

是的,我正在使用babel transpiler我正在使用babel transpiler