2016-02-17 4 views
6

«Очень медленно», я имею в виду, он загружает один переход примерно на 5 секунд, несмотря на это просто пример приложения.React native works очень медленно на android

Here is the whole app RN code

Посмотрите на onPressFeed

+0

Я модернизировал реагировать родной от 0.27 .2 до 0.39.2, и я столкнулся с той же проблемой, что и вы. Я не знаю, что делать! –

ответ

2

Какая версия Реагировать Native бежишь? И какой телефон вы используете?

Если вы запустите React Native на Android Emulator, это будет довольно медленно. Кроме того, если у вас включена отладка chrome, она замедляет приложение с помощью LOT.

Я использую довольно простое приложение React Native на своем устройстве Samsung Galaxy s4, и оно работает довольно быстро (анимация работает довольно гладко).

некоторый пример кода, который я бегу (а sidedrawer и основной вид с анимацией):

_renderCancel: function(){ 
    if (this.state.showView) { 
    return (
     this.props.view 
    ); 
    } else { 
    return ; 
    } 
}, 

render: function() { 

var menu = <Menu 
       closeDrawer={this.closeDrawer} 
       navigator={this.props.navigator} 
       modifyOnClose={this.modifyOnClose} />; 


return (
    <Drawer 
    ref="drawer" 
    onClose={this.onClose} 
    type={this.state.drawerType} 
    animation={this.state.animation} 
    openDrawerOffset={this.state.openDrawerOffset} 
    closedDrawerOffset={this.state.closedDrawerOffset} 
    panOpenMask={this.state.panOpenMask} 
    panCloseMask={this.state.panCloseMask} 
    relativeDrag={this.state.relativeDrag} 
    panStartCompensation={this.state.panStartCompensation} 
    openDrawerThreshold={this.state.openDrawerThreshold} 
    content={menu} 
    styles={drawerStyles} 
    disabled={this.state.disabled} 
    tweenHandler={this.tweenHandler} 
    tweenDuration={this.state.tweenDuration} 
    tweenEasing={this.state.tweenEasing} 
    acceptDoubleTap={this.state.acceptDoubleTap} 
    acceptTap={this.state.acceptTap} 
    acceptPan={this.state.acceptPan} 
    changeVal={this.state.changeVal} 
    negotiatePan={false} 
    side={this.state.rightSide ? 'right' : 'left'} 
    > 
    <View> 
     <CustomToolBar onPress={this.openDrawer}/> 
     {this._renderCancel()} 
    </View> 
    </Drawer> 

); 
}, 

это работает довольно быстро на моем устройстве.

+0

RN 0.19, устройство: philips Xenium он катит 100 кадров в течение одного перехода отладка – stkvtflw

+0

Мне нравится реакция, но, кажется, реагировать на родной имеет так много проблем - можно ли на самом деле создать там гладкое рабочее приложение? Я нашел проблемы в rn repo - похоже, что он будет работать медленно в любом случае. Не так, как сейчас, но задержка - 1 секунда - это нехорошо. – stkvtflw

+0

RN работает медленнее на Android, чем на iOS (работает почти отлично на iOS), но они работают над этим. Это только начало, так что давайте немного терпения. –

0

Это спасло меня много времени:

  • Поиск кода для «console.log», и комментировать их перед тестированием.
  • Выключите «Режим JS Dev»

Вы хотите, чтобы убедиться, что вы отключить «Режим JS Dev» или же он будет работать крайне медленно на устройстве.

Это как отключить JS Mode Dev на Android:

После запуска «реагировать родной вводного андроид» вы должны «встряхнуть» устройство , чтобы открыть меню. Выберите «Настройки Dev», а затем снимите флажок «JS Dev Mode».

После этого запуска «реагировать родной вводного андроид» снова, и это должно быть более производительным, по крайней мере, я надеюсь, что для вас :)

Источник: https://github.com/aksonov/react-native-router-flux/issues/199

Смежные вопросы