该prop-types包允许您向组件添加运行时类型检查,以确保传递给组件的道具类型正确。例如,如果不将aname或isYummyprop传递给下面的组件,它将在开发模式下引发错误。在生产模式下,不进行道具类型检查。定义propTypes可以使您的组件更具可读性和可维护性。
import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { AppRegistry, Text, View } from 'react-native'; import styles from './styles.js'; class Recipe extends Component { static propTypes = { name: PropTypes.string.isRequired, isYummy: PropTypes.bool.isRequired } render() { return ( <View style={styles.container}> <Text>{this.props.name}</Text> {this.props.isYummy ? <Text>THIS RECIPE IS YUMMY</Text> : null} </View> ) } } AppRegistry.registerComponent('Recipe', () => Recipe); // 使用组件 <Recipe name="Pancakes" isYummy={true} />
多种道具类型
propTypes一个道具也可以有多个。例如,我正在使用的道具名称也可以是一个对象,我可以将其写为。
static propTypes = { name: PropTypes.oneOfType([ PropTypes.string, PropTypes.object ]) }
儿童道具
还有一个特殊的道具叫children,它不会像
<Recipe children={something}/>
相反,您应该这样做
<Recipe> <Text>Hello React Native</Text> </Recipe>
然后可以在Recipe的渲染中执行此操作:
return ( <View style={styles.container}> {this.props.children} {this.props.isYummy ? <Text>THIS RECIPE IS YUMMY</Text> : null} </View> )
你将有一个<Text>在你的组件Recipe说法Hello React Native,很酷的嗡嗡声?
儿童的propType是
children: PropTypes.node
我在 时,我将收到以下YellowBox警告。 警告:失败的proType:无效的prop类型的提供给,的预期实例。检查DatePickerIOS的渲染方法。 警告:失败的propType:未在中指定所需的prop。检查的渲染方法。 警告:propType失败:提供给的类型为的prop无效,应为
我正在做一个React-Native项目,我意识到React-Native似乎打破了React-flow(父到子)道具更新。 基本上,我是从“应用程序”组件调用“菜单”组件,将一个道具传递给“菜单”。然而,当我更新“应用程序”状态时,“菜单”上的道具应该更新,但这不会发生。我做错什么了吗? 这是我的密码: 一个pp.js 菜单js
问题内容: 我正在尝试创建一个新的react native项目,该项目应该使用旧版本的react-native。 我想要的结果将是做类似的事情:但有使用它的react-native版本。 但是,似乎没有任何选项可用于使用旧版本的react-native进行初始化。 执行然后降级react-native 也不起作用,因为该命令会安装一堆用于构建应用程序的xcode模板,并且没有命令可以降级这些模板。
我正在做一个React项目,其中有一个名为。整个项目运行得很好,但是,我得到了一个控制台错误,显示。 完全错误消息 警告:失败的道具类型:货币内容提供者:道具类型无效;它必须是一个函数,通常来自包,但收到。这种情况经常发生是因为诸如而不是这样的错别字。 有关更多说明,请参见。如果有什么不清楚的地方,请告诉我。
我学习打字稿。我想设置组件功能道具类型。但我不知道如何设置。 这是代码。 我不想设置“任何”。我设置了什么类型?
PRO提示 当您看到带有堆栈跟踪的Red Box时,您可以单击任何堆栈框架跳转到源文件。打包器将启动您选择的编辑器。它将首先查看REACT_EDITOR环境变量,然后查看EDITOR。要设置它,您可以将之类的内容添加到您的中。 .bashrc: