diff --git a/example-app/SantokuApp/patches/README.md b/example-app/SantokuApp/patches/README.md index 9cad5d6149..0190eba759 100644 --- a/example-app/SantokuApp/patches/README.md +++ b/example-app/SantokuApp/patches/README.md @@ -20,3 +20,15 @@ React Native Elementsの3系では上記の変更に追従できていなかっ そのため、追加したファイルのIDを参照するような設定ができない事象が発生しました。 そこで、`IOSConfig.XcodeUtils.addResourceFileToGroup`にファイルのIDを指定できるパッチを当てています。 + +## FlatListでデータが0件の場合に`scrollToEnd`を呼び出すとエラーが発生する問題に対処するパッチ + +FlatListでデータが0件の場合に`scrollToEnd`を呼び出すと以下のエラーが発生します。 + +> ERROR Invariant Violation: Tried to get frame for out of range index -1, js engine: hermes + +この問題に対するissueとPull Requestは以下になります。 +* https://github.com/facebook/react-native/issues/36066 +* https://github.com/facebook/react-native/pull/36067 + +Pull Requestは既にクローズされ`main`ブランチにはマージされていますが、このアプリで使用している`react-native`のバージョンにはまだ入っていないため、パッチを当てています。 diff --git a/example-app/SantokuApp/patches/react-native+0.71.6.patch b/example-app/SantokuApp/patches/react-native+0.71.6.patch new file mode 100644 index 0000000000..098a67aded --- /dev/null +++ b/example-app/SantokuApp/patches/react-native+0.71.6.patch @@ -0,0 +1,14 @@ +diff --git a/node_modules/react-native/Libraries/Lists/VirtualizedList.js b/node_modules/react-native/Libraries/Lists/VirtualizedList.js +index e948a85..4534330 100644 +--- a/node_modules/react-native/Libraries/Lists/VirtualizedList.js ++++ b/node_modules/react-native/Libraries/Lists/VirtualizedList.js +@@ -157,6 +157,9 @@ export default class VirtualizedList extends StateSafePureComponent< + scrollToEnd(params?: ?{animated?: ?boolean, ...}) { + const animated = params ? params.animated : true; + const veryLast = this.props.getItemCount(this.props.data) - 1; ++ if (veryLast < 0) { ++ return; ++ } + const frame = this.__getFrameMetricsApprox(veryLast, this.props); + const offset = Math.max( + 0,