2017-01-20 57 views
0

所以我有一個setRouteleaveHook與功能:如何使用終極版與routerWillLeave

routerWillLeave(nextLocation) { 
    // return false to prevent a transition w/o prompting the user, 
    // or return a string to allow the user to decide: 
    console.log("prompt: ", this.props.prompt); 
    if (this.props.prompt) { 
     return "Are you sure you wish to navigate? Unsaved data will be lost. Try to use the 'next' button instead if moving to the next part."; 
    } else { 
     return true; 
    } 
} 

this.props.prompt是在商店的變量。看來,當我在它的父母中更新它時,prompt在我下次訪問它時纔會被修改。

有沒有更好的方法來觸發這些提示? (鑑於它是執行router.push的父組件)

回答

0

從'react-router'導入{withRouter};

出口默認withRouter(連接(YourSelectors,YourActions)(YourPage))

+0

this.props.router.setRouterLeaveHook(this.props.route,this.routerWillLeave) –

+0

我的問題是沒有得到綁定設置,我已經有了。我無法爲我的孩子正確觸發提示。儘管如此,接收商店更改正確。 –