Не удается прочитать свойство 'scrollView' из неопределенного - PullRequest
0 голосов
/ 26 февраля 2019

Я получил эту ошибку при использовании uniGUI Framework для выполнения кода JS.

Невозможно прочитать свойство 'scrollView' из неопределенного

Это свойствоиспользуется в этой процедуре.

procedure SetScrollboxSize(AFramem: TWPUnimFrame; ASize: Integer);
begin
  if ASize > AFramem.ScrollBoxm.ClientHeight then
    UniSession.JSCode(AFramem.Scrollboxm.JSName
                      + '.scrollableBehavior.scrollView.getScroller().maxPosition.y = '
                      + (ASize - AFramem.Scrollboxm.ClientHeight).ToString + ';')
  else
    UniSession.JSCode(AFramem.Scrollboxm.JSName
                      + '.scrollableBehavior.scrollView.getScroller().maxPosition.y = 0;');
end;

Можете ли вы дать мне подсказку, где искать или где начать исправлять эту ошибку?

1 Ответ

0 голосов
/ 26 февраля 2019

Трудно воспроизвести вашу ошибку без реального исходного кода, но "Cannot read property '...' of undefined" является типичной ошибкой JavaScript.Я предполагаю, что TWPUnimFrame это какой-то компонент для отображения веб-контента.

В вашем случае вам необходимо убедиться, что назначена переменная AFramem.Scrollboxm.JSName + '.scrollableBehavior'.Вы можете попытаться вывести некоторую информацию с помощью console.log() и отладить код JavaScript:

procedure SetScrollboxSize(AFramem: TWPUnimFrame; ASize: Integer);
var
    code: string;
begin
    code := 'console.log(' + AFramem.Scrollboxm.JSName + 'scrollableBehavior.scrollView); ';
    if ASize > AFramem.ScrollBoxm.ClientHeight then
        code := code +
            AFramem.Scrollboxm.JSName + 
            '.scrollableBehavior.scrollView.getScroller().maxPosition.y = ' +
            (ASize - AFramem.Scrollboxm.ClientHeight).ToString + ';'
    else
        code := code +
            AFramem.Scrollboxm.JSName +
            '.scrollableBehavior.scrollView.getScroller().maxPosition.y = 0;';
    UniSession.JSCode(code);
end;
...