React Flux Uncaught TypeError: _LocalityStore2.default.setSelectedLocality is not a function

React Flux Uncaught TypeError: _LocalityStore2.default.setSelectedLocality is not a function

我有 HomeLayout,从那里我被重定向到 MobileLocalityLayout,它有一个方法 selectLocality 在单击名为 "set locality" 的 link 时将位置值设置为 LocalityStore。现在,一旦我 select 地区,我就会被重定向到 HomeLayout,之后如果再次按下地区按钮和 select 地区,我会收到以下错误:

Uncaught TypeError: _LocalityStore2.default.setSelectedLocality is not a function

但是 LocalityStore 具有函数 setSelectedLocality

代码片段:

主页布局:

<span class='selectLocalityBtn'><Link to="/selectLocality">Set Locality</Link></span>

MobileLocalityLayout:

selectLocality(val){
        this.setState({
            selectedLocality : val
        });
        LocalityStore.setSelectedLocality(val);
        browserHistory.push("/");
    }

LocalityStore:

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

我是不是以错误的方式实现了通量。我不明白什么是 _LocalityStore2,因为我有 LocalityStore 而不是 LocalityStore2。请帮忙。

它看起来(按照名称约定)就像您在 class 而不是实例上调用 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.setSelectedLocality 替换为 this.selectedLocality