0

に反応:は、プログラムでアンカーに移動するには、ルータ4を反応させるのルータbrowserHistoryプッシュとアンカー

import { withRouter } from 'react-router-dom' 
... 
props.history.push('#blah') 

私はハッシュがアドレスバーに変える見ることができますが、ページがにスクロールしません関連するアンカー。私は標準<a href="#blah">Blah</a>でそれをチェックして、これは正常に動作します。私が間違って何をしているのか?感謝:)

UPDATE
だけチェックし<Link to="#blah">Blah</Link>は、私があまりにも履歴オブジェクトを使用してLinks作業を反応させると仮定しています...どちらか動作しませんか?

+0

私はbrowserHistoryについて話しています理由です、ブラウザのルータを使用しています。上記の私の記事からわかるように、あなたが提案したコード行を正しく試しました(機能部品を使用しているので 'this'を除く) –

+0

@Aaqibが間違っています。これは全く関係のない問題です。プッシュするパスは正常に動作し、ハッシュはプッシュしません。 –

答えて

0

は、いくつかの調査の後、私はcomponentDidUpdateライフサイクルイベントを処理するための機能を追加することにしました:

componentDidUpdate: props => { 
    const selected = props.history.location.hash 
    if(selected && selected.length > 0) { 
    const elem = document.getElementById(selected) 
    elem && elem.scrollIntoView() 
    } 
} 

これはうまく問題を解決:)

関連する問題