2016-10-28 14 views
1

私は、 "set locality"というリンクをクリックするとlocalityStoreに局所性値を設定するselectLocalityメソッドを持つMobileLocalityLayoutにリダイレクトされるHomeLayoutを持っています。今、すぐに私は再びプレスローカリティボタン場合HomeLayoutにし、その後にリダイレクトされています地域を選択して、地域を選択すると、私はエラーを以下の取得:React Flux Uncaught TypeError:_LocalityStore2.default.setSelectedLocalityは関数ではありません

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; 
} 

間違った方法でフラックスを実装していますか?私はLocalityStoreを持っていてLocalityStore2を持っていないので、_LocalityStore2は何か分かりません。助けてください。

答えて

0

あなたは、あなたのコード内で

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

をタイプミスを持ってはい、私はバベルtranspilerを使用していますthis.selectedLocality

0

クラスではなくインスタンスでsetSelectedLocalityを呼び出すように見えます(名前の規則によって)。 LocalityStoreをエクスポートすると、LocalityStoreのインスタンスが作成され、そのインスタンスでメソッドが呼び出されます。このように:

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

この名前について(LocalityStoreを_LocalityStore2に変更)。私はあなたがbabel-react-loaderまたはこのようなものを使ってコードをES5に移植していると思います。これにより元のコードに若干の変更が加えられますが、問題はありません。

+0

でthis.setSelectedLocalityを交換してください –

関連する問題