Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
blueShuttle
@blueShuttle
This was because of the AltJS extension for Chrome... I uninstalled it and everything is good again.
Alex Chobanov
@achobanov
Hello guys. I'm just a beginner here, trying out flux with Alt. I followed this tutorial: http://sahatyalkabov.com/create-a-character-voting-app-using-react-nodejs-mongodb-and-socketio/#step-19-deployment . Now I am building my own app, about movies. I have a component - MovieCard, which sends ajax request to retrieve posterImg from foreign api, inside the componentDidMount method. I must be doing something wrong, because when I have two or more movies, I get multiple dispatches error. Topic in StackOverflow : https://stackoverflow.com/questions/44720979/flux-with-alt-simultaneous-dispatches-means-wrong-design-pattern. I'd really appreciate some help, because I'm on clock here :) Thanks!
Martin Eden
@MartinEden
Hi. I'm using remote data sources, as described at http://alt.js.org/docs/async/.
So when the user navigates to new page I do something like myStore.fetchRabbits. Sometimes, this results in an error that is "expected" (for example the user's access token has expired). These errors get handled fine by the error action I specified when I set up the async source. However, AltJS then rethrows the exception and my console.log fills up with unhandled exceptions.
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?
Thanks!
Martin Eden
@MartinEden
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
@heavyhorse
@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
@MartinEden

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
@heavyhorse
@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
@rajatb94
Having issues in integrating alt data source in stores ... can anybody help me?
sanjaysamant
@sanjaysamant
"Uncaught ReferenceError: Invalid action reference passed in " when I am following document example
Jovica Aleksic
@loopmode
@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"? :)
VasyaPetroff
@VasyaPetroff

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
@rajatb94
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
@loopmode
@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
@SiyabongaNzulwana
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
@SiyabongaNzulwana
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) {
    super(props)

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

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

}

onChange(){

}

    render() {

    return (
        <div>
              <form onSubmit={this.handleSubmit}>
            <input size="35" ref="srch" type="search" id="search" placeholder="Search..." />
            <button submit={this.handleSubmit} >Serach Address</button>
            </form>
        </div>
      )
       }
}
Peter Kim
@pk1m
@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
@sedletsky
helau bitches
king Ishtiaq
@KingIshtiaq_twitter
Hi
Scott Albertine
@ScottAlbertine
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
@luchoct
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
@luchoct
@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
@loopmode
@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
@luchoct
@loopmode Great, I will give it a shot! I was not aware of ActionListeners. Thanks a lot.
Augusto Russo
@arcifius
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
@avdeveloper
@arcifius do you have a gist ?
Augusto Russo
@arcifius
nope
@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