首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Props

大多数组件可以在创建时自定义,并具有不同的参数。这些创建参数被调用props

例如,一个基本的React Native组件是Image。当您创建图像时,您可以使用一个指定的道具source来控制它显示的图像。

代码语言:javascript
复制
import React, { Component } from 'react';
import { AppRegistry, Image } from 'react-native';

export default class Bananas extends Component {
  render() {
    let pic = {
      uri: 'https://upload.wikimedia.org/wikipedia/commons/d/de/Bananavarieties.jpg'
    };
    return (
      <Image source={pic} style={{width: 193, height: 110}}/>
    );
  }
}

// skip this line if using Create React Native App
AppRegistry.registerComponent('AwesomeProject', () => Bananas);

注意,{pic}它被大括号包围,以便将该变量嵌入pic到JSX中。您可以将任何JavaScript表达式放在JSX中的大括号内。

您自己的组件也可以使用props。这使您可以制作应用中许多不同位置使用的单个组件,每个位置的属性略有不同。只需this.props在您的render功能中参考。这是一个例子:

代码语言:javascript
复制
import React, { Component } from 'react';
import { AppRegistry, Text, View } from 'react-native';

class Greeting extends Component {
  render() {
    return (
      <Text>Hello {this.props.name}!</Text>
    );
  }
}

export default class LotsOfGreetings extends Component {
  render() {
    return (
      <View style={{alignItems: 'center'}}>
        <Greeting name='Rexxar' />
        <Greeting name='Jaina' />
        <Greeting name='Valeera' />
      </View>
    );
  }
}

// skip this line if using Create React Native App
AppRegistry.registerComponent('AwesomeProject', () => LotsOfGreetings);

使用name作为道具让我们自定义Greeting组件,所以我们可以为每个问候重用该组件。这个例子也使用GreetingJSX中的组件,就像内置组件一样。做到这一点的力量正是让React如此酷炫的原因 - 如果你发现自己希望有一组不同的用户界面原语可以使用,那么你只需要发明新的。

这里发生的另一件新事物是View组件。一个View可用作其他组件的容器,以帮助控制样式和布局。

使用props和基本的TextImageView组件,你可以建立各种各样的静态屏幕。要了解如何让您的应用随时间变化,您需要了解状态。

扫码关注腾讯云开发者

领取腾讯云代金券