1

调度在 react-redux connect() 的 mergeProps 参数中定义的推送动作会调度 redux 动作,但不会触发 url 页面更改。我还将 withRouter 包裹在 redux 容器周围,但似乎没有帮助。

//connect.js

import { Component } from './Component';
import { withRouter } from 'react-router-dom';
import { connect } from 'react-redux';
import { push } from 'connected-react-router';
import { onFetch, onUpdate } from '../action-creators';

export default withRouter(connect(state => state, 
{ 
            onFetch, 
            onUpdate,
            push
        },
        ( state, actions ) => ({
            ...state,
            onFetch: actions.onFetch,
            onUpdate: index => {
                actions.onUpdate( index );
                actions.push( `/${ index }` );
            }
        })
    )( Component ));

我可以做些什么来触发实际的页面更新以及使用 create-react-router 包的 LOCATION_CNANGE redux 操作?此时,只有 connected-react-router 中间件和 redux 存储正在更新,但没有实际的页面更改。

4

1 回答 1

0

通过修改重定向“来自”道具来修复它。

根本原因:重定向被放置在 switch 子路由列表的末尾,作为一个包罗万象的重新路由到主页。但是,所有请求(包括除 '/' 之外的有效请求)都转到通用重定向并重新路由到主页。

于 2018-08-19T15:46:53.700 回答