dva network 页面加载顺序不对,如何修改

我的投票页面网址是:http://localhost:8000/teamBuilding/poll/pollDetail/103
我投了2票,投完后只显示投了1票。
刷新页面后显示投了2票。
数据都是对的,提交后数据库内的数据也是对的。
图片描述

250表示投250一票,传到数据库
105表示加载投票结果
251表示投251一票,传到数据库

等于说我在数据传到数据库前就读结果了,所以读到结果是错的,但数据库里面数据是对的。所以再刷新后显示结果又对了。

图片描述

这是我的提交函数。checkedList里面是我选的选项。显示数据是对的,是2票。然后第一个dispatch,把数据传到model去在数据库中create这2条数据。
第二个dispatch意思是去往pathname:${data.id}这个页面(http://localhost:8000/teamBuilding/poll/pollDetail/103),还是原来的页面。我不知道刷新页面怎么写所以就用了这种方式。location.reload();不行,会不提交数据,只刷新页面。

我的想法是换个方法回到这个页面http://localhost:8000/teamBuilding/poll/pollDetail/103。有没有大佬教一下?

阅读 3k
2 个回答
  const onClickpublish = () => {
    console.log("checkedList",checkedList)
    dispatch({
      type: 'pollDetail/create',
      payload: checkedList,
      pollId: data.id
    }).then(() => {
      dispatch(routerRedux.push({
        pathname: `${data.id}`,
      }))
    });
  }

dva管理状态
在pollDetailModel中create方法来设置投票
接着异步进行router.push

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题