goatslacker / goatslacker/alt

Store2.default.performSearch is not a function, using source

Open
#667 1 comment 0 reactions 0 assignees View on GitHub
question
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.