71 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| title: Props
 | |
| ---
 | |
| ## React Native - Props
 | |
| 
 | |
| The term props, short for 'properties', means some type of data that is passed from one component into another. Props always flow downward from the parent component to the child.
 | |
| 
 | |
| 
 | |
| In React, the child component has access to the information from a parent via props:
 | |
| 
 | |
| ```jsx
 | |
| // the child Header component receives the text prop and can access it via this.props.text
 | |
| class Header extends Component {
 | |
|   render () {
 | |
|     return (
 | |
|       <Text>{this.props.text}</Text>
 | |
|     )
 | |
|   }
 | |
| }
 | |
| 
 | |
| class App extends Component {
 | |
|   render () {
 | |
|     return (
 | |
|       <Header text="Welcome!" />
 | |
|     );
 | |
|   }
 | |
| }
 | |
| 
 | |
| ```
 | |
| 
 | |
| This also works the same way in functional components:
 | |
| 
 | |
| ```jsx
 | |
| // in functional components, props will be received as a parameter 'props'
 | |
| const Header = (props) => {
 | |
|   return (
 | |
|     <Text>{props.title}</Text>
 | |
|   );
 | |
| };
 | |
| 
 | |
| class App extends Component {
 | |
|   render () {
 | |
|     return (
 | |
|       <View>
 | |
| 	<Header text="Welcome!" />
 | |
|       </View>
 | |
|     );
 | |
|   }
 | |
| }
 | |
| 
 | |
| ```
 | |
| 
 | |
| Other libraries you import will also give you access to additional properties inside your components. Here is an example from the [react-native-elements](https://github.com/react-native-training/react-native-elements) library.
 | |
| 
 | |
| ```jsx
 | |
| import { Button } from 'react-native-elements';
 | |
| 
 | |
| // here 'buttonStyle' and 'title' are props passed into the Button component
 | |
| class App extends Component {
 | |
|   render () {
 | |
|     return (
 | |
|       <Button
 | |
| 	buttonStyle={{backgroundColor: 'red', borderRadius: 10}}
 | |
| 	title={`Submit`}
 | |
|       />
 | |
|     );
 | |
|   }
 | |
| }
 | |
| ```
 | |
| 
 |