2016-04-14 9 views
1

は本当に新しい反応するので、これは本の1ページ上にある場合は、私を許して...が反応するように水平スクロールバー

私は小さなドラッグを得て反応で働くサンプルをドロップしました。私は<div>を私のページの一番下から "ターゲット" <div>にドラッグすることができます。ドロップハンドラは状態を変更し、ドロップされた要素がターゲットに表示されます。

すべてのドロップされた要素は、水平方向に次々にターゲットに表示されます。

問題があります:ターゲットdivを右にスクロールして、私が今ドロップしたものを見せてもらいたいです。

ドロップハンドラにターゲットを見つけた(refsを介して)コードを追加し、scrollLeftを大きな数値に設定しました。 スクロールが発生しますが、末尾にはありません。私はそれが新しい状態でレンダリングされる前に要素にscrollLeftを設定しているので、それが前の最大値に設定されていると仮定しています。

誰でも正しい方向に向けることができますか?

+0

あなたはscrollLeftを呼び出していますか? setStateを使用している場合は、レンダリングが完了した後に実行されるオプションのコールバックが必要です。 – LodeRunner28

+0

@ LodeRunner28 Brilliant - オプションの第2引数について 'setState'に答えると、私はそれを受け入れます - 問題を修正しました。 – John3136

答えて

2

this.setStateは、レンダリングが完了した後に実行されるコールバックである第2のオプションのパラメータを受け入れます。例えば

this.setState({ /* your state */ }, function() { 
    ... 
    this.refs.yourRef.scrollLeft = /* someValue */; 
}); 
+1

これを行うには、次のようにscrollLeftに値を代入します。 'this.refs.yourRef.scrollLeft = ' – ajduke

+1

scrollLeftが関数ではなくプロパティである場合に、これが受け入れられるのはなぜですか? – Foxhoundn

関連する問題