Почему крючок useState не обновляется в событии WebView onScroll?

#react-native #events #webview #state #use-state

Вопрос:

Я пытаюсь создать обходной путь для вычисления/получения высоты содержимого, которое должно отображаться внутри компонента React Native WebView.

Для этого я искусственно вызываю событие onScroll с помощью Javascript , а затем пытаюсь обновить состояние с фактической высотой содержимого. Но даже журнал консоли показывает разные значения высоты содержимого, что должно вызвать обновление состояния , этого не происходит. Только при реальной прокрутке он обновляется. Но это точно, что даже без прокрутки событие запускается, когда работает журнал консоли.

Есть идеи, почему здесь не удается обновить состояние? (Во фрагменте кода отсутствуют некоторые обратные ссылки)

     const [contentHeight, setContentHeight] = useState(10);

    const webViewScript = 
     setTimeout(function() { 
     window.postMessage(document.body.scrollDown); 
     }, 1000);
      true; // note: this is required, or you'll sometimes get silent failures
      ;


    <WebView
      injectedJavaScript={window.ReactNativeWebView.postMessage(${webViewScript})}
      domStorageEnabled={true}
      automaticallyAdjustContentInsets={false}
      onScroll={(event) =>
      setContentHeight(Number(event.nativeEvent.contentSize.height));
      }
      javaScriptEnabled
      style={{ height: contentHeight }}
      source={{ html: htmlTempl, baseUrl: '' }}
    />