Giter VIP home page Giter VIP logo

Comments (7)

mjackson avatar mjackson commented on March 29, 2024

The current boundary between sync and async lands is at Route#dispatch (in the route-component branch). Routes use this method to update their state when the URL changes. It's nice to keep this boundary at a low level so it doesn't permeate the rest of the API. For example, the URLStore would need to know about promises in order to make Router.transitionTo return a promise.

Anyway, the best we could do would be to return a promise that resolves immediately after the call to route.setState, which doesn't necessarily mean that changes have been made to the DOM.

Would it be too much hassle to ask people to use componentDidMount and/or componentDidUpdate in their tests? If people absolutely need to know when a transition is completed, maybe we could provide a didTransitionTo transition hook?

from react-router.

ryanflorence avatar ryanflorence commented on March 29, 2024

When integration testing you'll need to know exactly when you can start asserting the screen has the data you expect.

from react-router.

mjackson avatar mjackson commented on March 29, 2024

Right. Seems like that's exactly what componentDidUpdate is for.

from react-router.

threepointone avatar threepointone commented on March 29, 2024

depending on the app's architecture, couldn't componentDidUpdate fire multiple times before a single 'transition' is over?

from react-router.

ryanflorence avatar ryanflorence commented on March 29, 2024

For integration tests we will need some sort of hooks to know that transitions and when data from #57 have landed before making assertions.

We should have some test helpers for this.

from react-router.

mjackson avatar mjackson commented on March 29, 2024

The hook you're looking for is Route#dispatch. That method returns a promise that resolves when the transition is complete and the ActiveStore has been updated.

from react-router.

ryanflorence avatar ryanflorence commented on March 29, 2024

closing for a different converstaion

from react-router.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.