2016-12-28 55 views
1

由于某种原因,如果我尝试导航到一个特定的URL,是完全一样的当前,但有一个不同的查询或相同的URL没有查询 它似乎不检测到它必须再次映射StateTrops。 如果我运行componentWillReceiveProps,我可以看到React检测到一个变化(接收到与当前显示的相同的道具),但由于某些原因,redux没有。任何想法问题可能是什么?redux不强制mapStateToProps与browserHistory.push()

function mapStateToProps(state) { 
    console.log(state); 
    return { 
     listings: state.mainState.Listings, 
     publisher: state.mainState.profilePopUp, 
     User: state.mainState.userCookie 
    }; 

} 
+0

什么问题?道具应该改变,而不是改变?你没有收到道具吗? – BravoZulu

+0

@BravoZulu我的组件正在接收相同的道具,即使它应该根据查询来渲染新的道具 – chubaka

+0

然后,如果该查询触发了一个动作,那么您应该发布商店。所有进入到redux以显示为什么不会改变的内容 – BravoZulu

回答

0

所以我发现了一些这样的骇人的解决方法,不知道为什么甚至有必要摆在首位。

只需通过componentWillReceiveProps发送一个动作,以便强制更新组件,并与最后一页的某些信息进行比较,以便知道它不在同一页面上(查询适用于我),并且可以停止调度一遍又一遍。

如果你不熟悉代码库,这个解决方案看起来不太好理解,所以我只是以另一种方式做了我的路由,希望它能帮助别人!

相关问题