首页 > 解决方案 > react router is only replacing the final route on history.push

问题描述

I am trying to redirect with react router to another page after a certain amount of time has passed.

The code I have so far is:

 submitActivity(){
        axios.post('/tiles', {
            activityDate:this.state.startDate,
            planId:this.state.planId,
            value:this.state.sliderValue
        })
            .then(res=>{
                console.log(res);
                this.modalHandleShow();
                setTimeout(function(){
                    this.goBackToTile();
                }.bind(this),3000);
            })
            .catch(err=>console.log(err));
    }

    goBackToTile(){
        this.props.history.push(`tile/${this.state.tileId}`)
    }

history is definitely being called, but the url which is currently

/addActivity/tile/2/plan/9

only gets changed to /addActivity/tile/2/plan/tile/2

while /tile/2 is correct I don't understand why the rest of the url stays in tact?

标签: javascriptreactjsreact-router

解决方案


确保/在字符串的开头包含 a,否则它将相对于您当前的 url 使用。

goBackToTile() {
    this.props.history.push(`/tile/${this.state.tileId}`)
}

推荐阅读