React-window: 再レンダリング時に上にスクロールしないでください

作成日 2019年05月02日  ·  3コメント  ·  ソース: bvaughn/react-window

こんにちは、

現在、各セルに入力チェックボックスを含むグリッドを読み込もうとしています。
チェックボックスをクリックするたびに、親コンポーネントに状態を設定するonChangeの関数を呼び出します。
チェックボックス/ setStateをクリックするたびに、グリッドはグリッドの上部に再レンダリングされます。
チェックボックスをクリックした正確な位置に戻る方法、またはどういうわけかFixedSizeGridを再レンダリングしない方法はありますか?
また、新しい小道具を渡している間?
initialScrollTopがあることは知っていますが、チェックボックスを選択した場所の正確な前の場所を計算できません。

手伝ってくれてありがとうございます!
(以下にコードスニペットを含めました)

`` `const Cell =({data、columnIndex、rowIndex、style})=> {

const {list、list2、selectInput} = data;

戻る(

{list2 [columnIndex +(4 * rowIndex)] &&


className = "w-100"
src = {list2 [columnIndex +(4 * rowIndex)]}
/>

}

);
};

const例=()=> {
戻る(
columnCount = {4}
columnWidth = {190}
高さ= {600}
rowCount = {Math.ceil(trueCoverList.length / 4)}
rowHeight = {250}
width = {760}
>>
{細胞}

);
}

💬 question

最も参考になるコメント

ああ。 renderメソッド内でコンポーネント(関数)を作成しています。 外部コンポーネントが再レンダリングされると、内部タイプが再作成され、Reactがアンマウントおよび再マウントされるため、これは実際には機能しません。

また、状態が変更されたときにグリッドセルが再レンダリングされるように、状態をitemDataとして渡す必要があります。

どうぞ:
https://codesandbox.io/embed/mznznkv0q8

全てのコメント3件

(コードサンドボックスで)完全な再現を共有できますか? スニペットから再作成する時間が本当にありません。

もちろん。

基本的な例/シナリオを書きました。 他に何か必要な場合はお知らせください
https://codesandbox.io/embed/mznznkv0q8

ありがとうございました

ああ。 renderメソッド内でコンポーネント(関数)を作成しています。 外部コンポーネントが再レンダリングされると、内部タイプが再作成され、Reactがアンマウントおよび再マウントされるため、これは実際には機能しません。

また、状態が変更されたときにグリッドセルが再レンダリングされるように、状態をitemDataとして渡す必要があります。

どうぞ:
https://codesandbox.io/embed/mznznkv0q8

このページは役に立ちましたか?
0 / 5 - 0 評価