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

时间:2016-10-28 08:04:23

标签: javascript flux reactjs-flux

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

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

但LocalityStore具有函数setSelectedLocality

代码段:

HomeLayout:

<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。请帮忙。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

您的代码中有拼写错误

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

请将this.setSelectedLocality替换为this.selectedLocality