68 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						||
title: Props
 | 
						||
localeTitle: 道具
 | 
						||
---
 | 
						||
## React Native - 道具
 | 
						||
 | 
						||
术语props是“属性”的缩写,表示从一个组件传递到另一个组件的某种类型的数据。道具总是从父组件向下流向子组件。
 | 
						||
 | 
						||
在React中,子组件可以通过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!" /> 
 | 
						||
    ); 
 | 
						||
  } 
 | 
						||
 } 
 | 
						||
```
 | 
						||
 | 
						||
这在功能组件中的工作方式也相同:
 | 
						||
 | 
						||
```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> 
 | 
						||
    ); 
 | 
						||
  } 
 | 
						||
 } 
 | 
						||
```
 | 
						||
 | 
						||
您导入的其他库还可以访问组件中的其他属性。以下是来自[react-native-elements](https://github.com/react-native-training/react-native-elements)库的示例。
 | 
						||
 | 
						||
```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`} 
 | 
						||
      /> 
 | 
						||
    ); 
 | 
						||
  } 
 | 
						||
 } 
 | 
						||
 | 
						||
``` |