Dva: subscriptions的history.listen获取query,dva1是{},dva2是undefined

Created on 13 Sep 2017  ·  6Comments  ·  Source: dvajs/dva

subscriptions: {
        setup({ dispatch, history }) {
            return history.listen(({ pathname, query }) => {
                if (pathname === '/device') {
                    console.log(query)
                    dispatch({ type: 'list', payload: query })
                }
            })
        }
    }

Most helpful comment

@zkeyword 在 使用 routerRedux 进行 push 的时候,应该按照如下的写法:

       routerRedux.push({
        pathname: "/user",
        search: "?page=" + page
      })

然后在 model 中的监听可以按照 @jdwdw 那样写,search 就可以获取到了

All 6 comments

react-router v4 use search

@zkeyword 按照Demo 可以这样

  subscriptions: {
    setup({ dispatch, history }) {
      return history.listen(({ pathname, search }) => {
        const query = queryString.parse(search);
        if (pathname === '/users') {
          dispatch({ type: 'fetch', payload: query });
        }
      });
    },
  },

search 获取过来是 空字符

@zkeyword search 属性是一个可读可写的字符串,可设置或返回当前 URL 的查询部分(问号 ? 之后的部分)。 没有源码不知到具体原因,可能是你当前的 url 没有查询部分。(就是问号?......)

参考 https://github.com/sorrycc/blog/issues/48 的 break change 部分,history 的 location 属性上不再包含 query。

image

@zkeyword 在 使用 routerRedux 进行 push 的时候,应该按照如下的写法:

       routerRedux.push({
        pathname: "/user",
        search: "?page=" + page
      })

然后在 model 中的监听可以按照 @jdwdw 那样写,search 就可以获取到了

Was this page helpful?
0 / 5 - 0 ratings

Related issues

not3 picture not3  ·  3Comments

mclouvem picture mclouvem  ·  4Comments

bjwulin picture bjwulin  ·  3Comments

sorrycc picture sorrycc  ·  3Comments

ljjsimon picture ljjsimon  ·  3Comments