Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
Martin Eden
To get around this problem I invoke my fetch like this myStore.fetchRabbits().catch(doNothing), where doNothing is just a no-op function I wrote for the purpose. This means when the exception gets rethrown it gets caught here and silenced.
But now I am adding shouldFetch support to my sources. If shouldFetch returns false, the fetchRabbits function doesn't return a promise, it just returns null. So I get a different set of exceptions filling up my log, complaining about calling catch on a null object.
How am I meant to be handling all this?
Martin Eden
Okay, I figured out the null was because I was returning null in the local part of my async source. Should I return a promise here?
Em Talukder
@MartinEden I think you should be calling that in your actions
then it returns the data in to your store
if you want to follow Alt conventions
Martin Eden

Thanks for the response. Okay, so the way in which you are meant to use async methods is something like this?

function inResponseToSomething() {
    myStore.fetchRabbits().then(rabbits => myAction.update(rabbits)).catch(doNothing);

I have been instead specifying myAction.update as the success action in the async source. But that isn't the correct way to do things?

Em Talukder
@MartinEden I normally call it like…Actions.updateObject(data).then(…) this call will then update the store. and you can choose whether or not to use the callback
because the data is sent to the store, other components can be aware of the state and use the data if needed
Rajat Bhardwaj
Having issues in integrating alt data source in stores ... can anybody help me?
"Uncaught ReferenceError: Invalid action reference passed in " when I am following document example
Jovica Aleksic
@goatslacker hi there. Any plans of updating to latest react? connectToStores from the utils package is using React.createClass, which will be deprecated soon - latest react gives warnings. I guess it's "PRs welcome"? :)

Hi, guys

I have a small trouble with parent and children components. So there is
Parent AltContainer -> DataLayout -> Inside DataLayout there are some another
AltContainer(s) - Big smart components.

After Parent AltContainer is cleared unlisten events in children components
don't fire.

Rajat Bhardwaj
can not dispatch ... a store is already dispatching..... tried to use waitFor but no solution
@sanjaysamant Check actions bindings in store and and do the same if u r usinf ALT source
Jovica Aleksic
@rajatb94 waitFor is for something different actually
what you might need is someAction.defer() instead of someAction().
In my experience, the problem is typically:
  • Some component calls componentDidMount() { MyStore.loadSomething(); }
  • loadSomething dispatches a loading action, e.g. via dataSource, to indicate busyness
  • But some other action, probably some success hat caused the component to be mounted in the first place, and it being mounted is still part of the success dispatch and while that hasn't finished, the system is trying to dispatch the next loading action
  • The solution for me is typically componentDidMount() { setTimeout(() => MyStore.loadSomething()); }
Siyabonga Nzulwana
Hello Guys, I have a problem with my React Component,
Ok, this is how it goes... I have a SearchComponent for searching your address then I have a MapComponent for displaying a map. now I need to have my SearchComponent allowing a user to put his/her address then click submit then the map location changes to the input address, and my SearchComponent needs to have Googles AutoComplete fro places,
any Idea?
Siyabonga Nzulwana
this is my SearchComponent
import React, { Component } from 'react'
import { MapContainer } from '../Map/MapContainer.jsx'
import Geosuggest from 'react-geosuggest'

export class SearchAddress extends Component {
  constructor (props) {

    this.state = {
      address: ''
     this.handleSubmit = this.handleSubmit.bind(this)

handleSubmit(e) {
   console.log('value ',this.refs.srch.value)




    render() {

    return (
              <form onSubmit={this.handleSubmit}>
            <input size="35" ref="srch" type="search" id="search" placeholder="Search..." />
            <button submit={this.handleSubmit} >Serach Address</button>
Peter Kim
@SiyabongaNzulwana For getting your MapContainer to update based off your SearchAddress input, you should be using actions and stores. its pretty simple, your components will listen to your stores. primitive way to do it is have your handleSubmit fire an action with the address. your MapStore would listen to this action and sets address in its state. Your MapComponent will be listening to the MapStore and will rerender with the new address.
Mikhail Sedletsky
helau bitches
king Ishtiaq
Scott Albertine
Hey, anyone familiar with using alt.js and npm test together? I'm running into an immediate error where React's default App.test.js no longer works when I have alt.js actions, but my code works in dev and production just fine
specifically, I'm getting this error
and it's due to me using this line:
export default alt.createActions(BusinessesActions)
where businessActions is a standard action class
I've googled all over the place and I have no idea why this code (which is nearly identical to the alt.js tutorial) is causing such a basic issue as not being able to construct an action class, despite it working in production just fine
the only thing I can think of that might be causing it, is that in production, we use webpack, whereas the test doesn't need to
Luis Gallego Hurtado
Hey, I am looking for some example or documentation of unit tests of action functions based on asynchronous code in the way is described in , fetchLocations in Fetching Data page of 'Getting started' guide . The point is that I want to assert whether updateLocation, which is actually a mock function is invoked, when locations are retrieved, and locationsFailed is invoked when promise is rejected. Is someone aware of any example any doc or example somewhere?
Luis Gallego Hurtado
@ScottAlbertine Hi Scott, I got your error sometime ago, and I had to use functions instead of classes:
export function UnwrappedActions() {
  if (!(this instanceof UnwrappedActions)) return new UnwrappedActions();

  this.actionXXX = function(arg1, arg2) {
export default Alt.createActions(UnwrappedActions());
Jovica Aleksic
@luchoct Can't you just use ActionListeners?
you set up a listener that invokes your mock, afterwards you can check if it was invoked
Luis Gallego Hurtado
@loopmode Great, I will give it a shot! I was not aware of ActionListeners. Thanks a lot.
Augusto Russo
Hello everybody... I'm having an issue and hope you could bring me some light...
I'm creating an action like this "async myaction() { const x = await axios.get("/testing"); return x.data }"
the store never gets updated with onMyAction
what am i doing wrong?
Albert Villaroman
@arcifius do you have a gist ?
Augusto Russo
@avdeveloper i've created one, dont know how to handle it properly yet
this solves? https://gist.github.com/arcifius/b17c0378fbef50174f0190235074774f
now i've pasted it here i've got why u ask hahaha
i'm going to update that
Augusto Russo