ユーザーが別のコンポーネントを閉じるときに、特定のコンポーネントにスクロールしようとしています。React refsを使用したscrollIntoView
私たちの例では、我々は、カードの大きなリストをレンダリングし、this.refs[elem].scrollIntoView()
を呼び出すことにより、特定のカードにスクロールできるようにしたいされているhttps://reactjs.org/docs/refs-and-the-dom.html#exposing-dom-refs-to-parent-components
function CustomComponents(props) {
const items = [1,2,3,4].map((x, i) => return (
<div ref={props.inputRef} key={i}>
x + hello
</div>
)
return (
<div>
{ items }
</div>
);
}
function Parent(props) {
return (
<div>
<CustomComponents inputRef={props.inputRef} />
</div>
);
}
class Grandparent extends React.Component {
render() {
return (
<Parent
inputRef={el => this.inputElement = el}
/>
);
}
}
から取られ、以下のダウンと非常に似ていますしかし問題は、this.refs
を呼び出すと、すべてのレベルで空のオブジェクトが返されるため、特定の要素にアタッチしてから、ユーザーがこのコンポーネントを表示するために戻ったときに呼び出すことができないということです。
この問題をどのように解決するかについてのヘルプが必要です。
実際の例では、どのレベルでも機能コンポーネントを使用していません。 –
コールバック関数を使用してrefを割り当てると、this.inputElementのようなクラス変数名ではなくthis.refsを使用してアクセスしなくなりました –
@ShubhamKhatriはそれに感謝し、頭が死んでいることがわかりました。本当に私たちを助けました。 –