React Native: как установить цвет фона для всего приложения и отдельной сцены в react-native-router-flux?

В React Native с использованием response-native-router-flux, как я могу установить цвет фона для всего приложения, а также для отдельной сцены?

Вот моя текущая установка:

const RouterWithRedux = connect()(Router)
const store = configureStore()

export default class App extends Component {
  render() {
    return (
      <Provider store={store}>
        <RouterWithRedux>
          <Scene key='root'>
            <Scene initial={true} key='login' component={Login} title='Login Page'/>
            <Scene key='register' component={Register} title='Register'/>
          </Scene>
        </RouterWithRedux>
      </Provider>
    )
  }
}

Спасибо


person Community    schedule 21.09.2016    source источник
comment
@rclai не могли бы вы мне помочь с этим? stackoverflow.com/questions/39611987/   -  person    schedule 21.09.2016


Ответы (1)


В документации по API можно используйте sceneStyle или getSceneStyle как на Router, так и на Scene (хотя только getSceneStyle для Router).

ИЗМЕНИТЬ

В Router вы можете использовать только getSceneStyle и должны передать функцию:

// ..
const getSceneStyle = (/* NavigationSceneRendererProps */ props, computedProps) => {
  const style = {
    backgroundColor: 'blue',
  };
  return style;
};
// ..
<Router getSceneStyle={getSceneStyle} {...otherProps}>
// ..

Для ваших Scenes вы можете просто передать объект или StyleSheet объект в sceneStyle или использовать getSceneStyle (убедитесь, что вы передаете функцию, как указано выше):

<Scene
  key="my-scene"
  component={MyScene}
  sceneStyle={{
    backgroundColor: 'red',
  }}
  title="My Scene"  />

Это переопределит синий фон.

person rclai    schedule 21.09.2016
comment
Извините, но не могли бы вы показать, как это применимо к моему коду? Я пробовал, но не получилось. - person ; 21.09.2016
comment
привет, вы видели мой предыдущий комментарий? - person ; 21.09.2016
comment
Маршрутизатор не работал, поэтому для каждой сцены выполнял <Scene component={Login} initial={true} key='login' sceneStyle={{backgroundColor: 'black'}} title='Login'/> и работал. Но интересно, нельзя ли установить sceneStyle на <Scene key='root'/>? Потому что это не работает. Кажется, что работа над каждой сценой - это переутомление. Кроме того, даже если я установил backgroundColor на черный, во время перехода кажется, что есть другой фон, белый. Как вы можете изменить цвет и для этого? Спасибо rclai и приму ответ, как только ответит. - person ; 22.09.2016
comment
Вы можете посмотреть мой обновленный ответ. Я запустил пример проекта, который есть у react-native-router-flux, и смог убедиться, что он работает. Кроме того, я не знаю, заметили ли вы, но в своем предыдущем комментарии вы говорили, как вы пытались установить стиль на своем RouterWithRedux, но у вас была опечатка и вы написали styleStyle, когда имели в виду sceneStyle, тем не менее, даже если вы исправили свой опечатка, вам все равно пришлось использовать getSceneStyle и передать функцию. - person rclai; 22.09.2016