2016-05-18 3 views
0

Я не могу найти документацию о том, как это должно быть сделано с компонентом <Navigator/> ... В принципе, когда одна из моих сцен загружается, я хочу, чтобы, например, мог передать route.navBarColor мой навигатор, который автоматически изменит цвет фона на панели.Изменить навигацию по изменению маршрута

Я попытался толкая маршрут с {navBarColor: 'red'}, и т.д. ... renderScene(), но это не работает, потому что renderScene() не кажется, есть ссылка на this, и когда я bind(this) его, вся сцена не оказывает , и выдает ошибку переполнения стека.

В принципе, я хочу сделать что-то вроде этого:

navigator.push({name: 'TestScene', navBarColor: 'transparent'})

Который затем идет в

renderScene(route, navigator) { 
    if(route.navBarColor) { 
     this.setState({navBarColor: navBarColor}); 
    } ... etc. 
} 

Где this.state.navBarColor используются для установки backgroundColor опоры в navigationBar.

Возможно ли это с компонентом Navigator? Я вижу, что это похоже на NavigatorIOS, поэтому я не понимаю, почему его здесь не будет.

Спасибо!

ответ

1

Компонент Navigator не имеет собственного дисплея, он управляет переходами и маршрутизацией сцены, поэтому спрашивать, как это сделать «с помощью навигатора» является неправильным. Это контрастирует с NavigatorIOS, который также диктует дисплей.

В вашем вопросе упоминается «NavigationBar», это React Native Navbar?

Если да, то где-то в функции renderScene() будет ссылка на компонент, вам просто нужно передать ему соответствующую поддержку navBarColor.

<NavigationBar statusBar={{ tintColor: route.navBarColor }} /> 
+0

привет, спасибо за ответ! Я использую компонент '', встроенный в React Native (с устройством маршрутизации). Насколько вам известно, тогда нет способа изменить этот цвет? Благодарю. –

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