2017-01-17 6 views
2

いくつかのネストされたコンポーネントを持つReactコンポーネントがあります。ページのナビゲーションには、上部にいくつかのボタンがあります。 問題は、特定のボタンをクリックしたときにネストされた反応コンポーネントにページをスクロールする方法です.jqueryライブラリを使用せずにページをスクロールすることは可能ですか?ボタンをクリックするとネストされたReactコンポーネントにスクロールします

render() { 
    return (
     <div> 
     <button onClick={(e) => { console.log('Scrolling to Item 1');}}>Button0</button> 
     <button onClick={(e) => { console.log('Scrolling to Item 2');}}>Button1</button> 
      <Layout> 
      <Item> 
       <Content> 
      ... 
       </Content> 
      </Item> 

      <Item> 
       <Content> 
      ... 
       </Content> 
      </Item> 

      </Layout> 
     } 
     </div> 
    ); 
    } 

答えて

2

scrollIntoViewを使用して要素までスクロールし、Reactのrefsを使用してコンポーネントのDOMを取得します。

Hereは、あなたが何をしたいかを示す小さな例です。あなたはそれを自分で実装する必要がない限り

var Hello = React.createClass({ 
    componentDidMount() { 
    alert("I will scroll now"); 

    this.refs.hello.scrollIntoView(); // scroll... 
    }, 

    render: function() { 
    return <div ref="hello">Hello {this.props.name}</div>; // reference your component 
    } 
}); 

ReactDOM.render(
    <Hello name="World" />, 
    document.getElementById('container') 
); 
0

アンカーを使用してみましたか?

id属性( 'myTarget')をターゲットコンポーネントに置き、ボタンをリンク(href: '#mytarget')に置き換えます。

これは固定ヘッダーでは機能しませんが、残念なことに

0

、あなたはreact-scroll

彼らdemoはかなり何が必要です使用することができます。

関連する問題