簡體   English   中英

防止來自React Router的“ URL操作/加載”

[英]Prevent “url action/load” from React Router

我希望我是React Router的新手,我試圖做一件簡單的事情。 確實,我想防止瀏覽器嘗試加載URL,希望我會清楚。

實際上,我有一個帶有多個按鈕的NavBar,並且當我單擊其中一個按鈕時,URL發生了變化,但沒有任何反應,呈現方式是完全相同的。 點擊之前 點擊后

但是,當我按Enter或右鍵單擊並在“新標簽頁中打開鏈接”時 ,會看到一條錯誤消息 (無法獲取/ 140009647639368)

這是我要解決的問題,以獲得與以前相同的結果。

我為您提供了下一個代碼示例以幫助您。 希望我表示清楚,並在此先感謝您的幫助。

    *`navbarComponent.js`*


        render(){
            return (
                <Navbar inverse fluid>
                  <Navbar.Header>
                    <Navbar.Brand>
                      Beam Viewer
                    </Navbar.Brand>
                    <Navbar.Toggle />
                  </Navbar.Header>
                <Navbar.Collapse>
                  <Nav>
                    {this.props.BpmList.map((bpm, index) => (
                      <LinkContainer key={index} to={'/'+bpm.key}><NavItem>{bpm.name}</NavItem></LinkContainer>
                    ))}
                  </Nav>
                </Navbar.Collapse>
              </Navbar>
           );

          }

    -----------------------------------------------------------------------------

   *index.js*

        class Main extends React.Component{

        componentWillReceiveProps(nextProps){

          console.log(nextProps);

        }

          render(){
            return (
              <div>
                <NavBar />
                <Options />
                <Infos />
                <Video />
              </div>
            )
          }
        }



    ReactDom.render(<Provider store={store}>
                    <Router history={browserHistory}>
                      <Route path='/' component={Main}/>
                      <Route path='/:bpmKey' component={Main}/>
                    </Router>
                    </Provider>,
                    document.getElementById('main'));

當您這樣做時,瀏覽器會嘗試從服務器獲取此路由。 由於您的服務器沒有它,因此會顯示該錯誤。 一種使它起作用的方法是使用hashHistory而不是browserHistory

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM