--- id: passing-data-to-components title: Passing data to components sidebar_label: Passing data to components --- ## Initial props React components use [props](https://facebook.github.io/react-native/docs/props) to receive data when they are created. When displaying the [component](../api/layout-component) layout, you can pass initial props to components using the `passProps` property. In this example, we push the `UserProfile` screen and pass two initial props to it: ```js Navigation.push(this.props.componentId, { component: { name: 'UserProfile', id: 'PROFILE_SCREEN_ID' passProps: { name: 'John Doe', status: 'online' } } }); ``` :::tip Serialization passProps don't need to be serializable. You can use this mechanism to pass lambda functions or even React Components. ::: ## Handling passProps in static options Each component can have a static options property which is used to configure the style properties of elements on the screen when that component is displayed. Static options can either be a simple object, or a function which accepts `passProps` as an argument. Sometimes when declaring components, not all style properties are known. For example, a user profile screen will usually have the user's name as the TopBar title text. Therefore the title must be configured dynamically when pushing the screen. Following the code example [above](passing-data-to-components#initial-props), lets see how to use props passed in the push command to set the TopBar title. ```jsx class UserProfileScreen extends React.Component { static options(props) { return ( topBar: { title: { text: props.name } } ); } } ``` ## Updating props To update a component's props, use the [Navigation.updateProps()](../api/component#updateprops) command. Updating props triggers the component lifecycle methods related to [updating](https://reactjs.org/docs/react-component.html#updating). Notice that we're using the component `id` in order to update props of this specific instance of the component. ```js Navigation.updateProps('PROFILE_SCREEN_ID', { status: 'offline' }); ```