如何在重定向时将props发送到reactjs

bog*_*anc 1 typescript reactjs react-router

我正在尝试通过React Route(重定向到)重定向​​到路径时发送道具,但组件(SideBar)没有收到任何道具.我应该如何发送道具以及如何在组件中接收道具?我想从当前状态发送道具.

ParentComponent(WelcomeScreen.tsx)

render(){

    return (  
        this.state.idUser != -1 ?  <Redirect to={{
            pathname: '/Activities',
            state: { referrer: this.state.idUser }
            }}/> :   
        <div>
            {this.renderHeader()}
            <div className='screenUser'>
                {this.renderPanelUpButtons()}
                {this.renderWelcomeMenu()}
            </div>
        </div>

    );
Run Code Online (Sandbox Code Playgroud)

Activities.tsx

export interface ActivitiesProps {
idUser: number;
}

interface ActivitiesState {  
message: string;
activitiesFirstPart: IActivity[];
activitiesSecondPart: IActivity[];
}

componentWillReceiveProps(newprops : ActivitiesProps){
    if(newprops!== this.props){
        this.props = newprops;
    }

}
Run Code Online (Sandbox Code Playgroud)

这里的组件不会收到任何道具.

为了更容易理解我也把路线;

render() {
    return (
        <div className="hangouts-body">
            <div>
                <Route path="/" exact={true} component={WelcomeScreen} />
                <Route path="/Groups" exact={true} component={Groups} />
                <Route path="/Activities" exact={true} component={Activities} />
                <Route path="/OneActivity" exact={true} component={OneActivity} />
            </div>
        </div>
    );
}
Run Code Online (Sandbox Code Playgroud)

kir*_*gol 5

通过url获取道具在React中有点不同.以下几行简要介绍了该过程

路线部分:

<Route path="/Activities/:idUser" exact={true} component={Activities} />
Run Code Online (Sandbox Code Playgroud)

重定向部分:

<Redirect to={"/Activities/" + this.state.idUser }/>
Run Code Online (Sandbox Code Playgroud)

获得道具部分

props.match.params.idUser
Run Code Online (Sandbox Code Playgroud)