H
H
hadaev_ivan2016-02-20 16:41:35
React
hadaev_ivan, 2016-02-20 16:41:35

React-router 2.0.0. How to send a request to upload data for a child only after the father?

const Route = {
  path: '/',
  component: require('blabla')
  onEnter: function(state, replace, callback){
     API.getInfo()
        then(function(response){
             callback();
        }) 
  },
  getChildRoutes(location, callback) {
    // сюда заходит раньше чем в onEnter для отца если путь подразумевает что надо искать ребенка '/child' 
    // но мне это не подходит, потому что мои роуты должны строится исходя из данных которые получит отец, 
   //как это решить?
      require.ensure([], function (require) {
      callback(null, [
          {
              path: '/child'
           }
      ])
    })
  }

Answer the question

In order to leave comments, you need to log in

2 answer(s)
X
xmoonlight, 2016-02-20
@xmoonlight

Move all logic to onEnter.
And if you need additional parameters - pass them in function variables.
Also, you can store in class variables to call them from another function.

N
Nikita Gushchin, 2016-02-21
@iNikNik

I have a quick fix, I hope it helps. But I would do something differently.

function createSomeRoute() {
  const parentPromise = false;
  const Route = {
    path: '/',
    component: require('blabla')
    onEnter: function(state, replace, callback){
       parentPromise = API
          .getInfo()
          .then(function(response){
               callback();
               return response
          }) 
    },
    getChildRoutes(location, callback) {
      // сюда заходит раньше чем в onEnter для отца если путь подразумевает что надо искать ребенка '/child' 
      // но мне это не подходит, потому что мои роуты должны строится исходя из данных которые получит отец, 
     //как это решить?
        parentPromise.then((someData) => {
          require.ensure([], function (require) {
          callback(null, [
              {
                  path: '/child'
              }
          ])
        } )
      })
    }
}

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question