React native App аварийно завершает работу в режиме выпуска со следующей ошибкой: null не является объектом (оценка s.drawer._root) - PullRequest
0 голосов
/ 28 мая 2019

Я использовал собственный базовый ящик, который отлично работает в режиме отладки, но когда я создал релиз apk, приложение зависает со следующей ошибкой.

AndroidRuntime: com.facebook.react.common.JavascriptException: null is 
not an object (evaluating 's.drawer._root')

код:

 closeDrawer = () => {
 this.drawer._root && this.drawer._root.close();
};

openDrawer = () => {
this.drawer._root && this.drawer._root.open();
};

<Drawer
      ref={(ref) => {
        this.drawer = ref;
      }}
      type="overlay"
      side={'left'}
      openDrawerOffset={0.2}
      panOpenMask={0.2}
      tapToClose={true}
      content={
        <SideBar
          navigator={this.navigator}
          closeDrawer={() => this.closeDrawer()}
          {...this.props}
        />
      }
      tweenHandler={(ratio) => ({
        main: { opacity: (2 - ratio) / 2 }
      })}
      onClose={() => this.closeDrawer()}
    >

1 Ответ

1 голос
/ 28 мая 2019

взгляните на реагирующий документ о ref

Если обратный вызов ref определен как встроенная функция, он будет вызываться дважды во время обновлений, сначала с нулем изатем снова с элементом DOM

в вашем обратном вызове closeDrawer и openDrawer, this.drawer может быть нулевым, возможно, вам следует добавить некоторые коды, такие как

this.drawer && this.drawer._root && this.drawer._root.close();
this.drawer && this.drawer._root && this.drawer._root.open();
...