Store2.default.performSearch is not a function, using source
- Dominant language
- JavaScript
- Stars
- 3.4k
- Forks
- 312
- PR merge metrics
- No merged PRs in 30d
Description
I'm trying to create a simple Alt flux example, using store, action, view and Source. However, I'm having a problem moving the data from source to store as in [Alt Flux Handling Async](http://alt.js.org/docs/async/). What I got when I try to access the store new function "performSearch" is
> _OrganizationStore2.default.performSearch is not a function_.
In the following code, I'm trying to access the _performSearch_ function in _App.jsx_, as it is a function of _OrganizationStore.js_ once I used _registerAsync(Source)_.
source.js
```
import OrganizationActions from '../actions/OrganizationActions'
import axios from 'axios'
const Source = {
performSearch: {
remote(state) {
return axios.get('localhost:8000/file.json');
},
local(state) {
return state.results[state.value] ? state.results : null;
},
loading: OrganizationActions.deleteManager, // (optional)
success: OrganizationActions.deleteManager, // (required)
error: OrganizationActions.deleteManager, // (required)
shouldFetch(state) {
return true
}
}
};
```
OrganizationStore.js
```
import alt from '../alt'
import OrganizationActions from '../actions/OrganizationActions'
import Source from '../source/Source'
class OrganizationStore {
constructor(){
this.bindListeners({
handleDeleteManager: OrganizationActions.deleteManager,
handleUpdateManager: OrganizationActions.updateManager,
handleFetchAll: OrganizationActions.fetchAll
});
this.state = {
manager: "Anim pariatur cliche ",
};
this.registerAsync(Source);
}
handleUpdateManager(data){
this.setState({manager: data});
}
handleDeleteManager(){
this.setState({manager: "deleted"});
}
handleFetchAll() {
this.setState({manager:null})
}
}
export default alt.createStore(OrganizationStore, 'OrganizationStore');
```
OrganizationActions.js
```
import alt from '../alt'
class OrganizationActions{
fetchAll(){
return{};
}
updateManager(manager){
return manager;
}
deleteManager(){
return{};
}
}
export default alt.createActions(OrganizationActions);
```
App.jsx
```
class App extends React.Component{
static getStores() {
return [OrganizationStore];
}
static getPropsFromStores() {
return OrganizationStore.getState();
}
componentDidMount(){
OrganizationStore.performSearch();
}
render(){
return(
...
);
}
}
```
Contributor guide
Assessment
This issue has not been assessed yet.