Reactjs 如何使组件在其接受的道具中明确显示?
在React组件构造函数接受哪些参数时,是否有明确的做法 查看下面这样的组件,我无法立即判断需要传递给构造函数什么来初始化组件 相反,我需要在组件主体中搜索特定的道具,或者检查组件之前是如何初始化的(如果有)Reactjs 如何使组件在其接受的道具中明确显示?,reactjs,Reactjs,在React组件构造函数接受哪些参数时,是否有明确的做法 查看下面这样的组件,我无法立即判断需要传递给构造函数什么来初始化组件 相反,我需要在组件主体中搜索特定的道具,或者检查组件之前是如何初始化的(如果有) 您可以显式显示组件接受的道具,包括它们的类型 MenuItem.propTypes = { name: PropTypes.string // optional string }; 您甚至可以根据需要定义它们: MenuItem.propTypes = { name: PropT
您可以显式显示组件接受的道具,包括它们的类型
MenuItem.propTypes = {
name: PropTypes.string // optional string
};
您甚至可以根据需要定义它们:
MenuItem.propTypes = {
name: PropTypes.string.isRequired // required string
};
请确保导入库:
import PropTypes from 'prop-types';
- 更多信息请参阅
MenuItem.propTypes = {
name: PropTypes.string // optional string
};
您甚至可以根据需要定义它们:
MenuItem.propTypes = {
name: PropTypes.string.isRequired // required string
};
请确保导入库:
import PropTypes from 'prop-types';
- 更多信息请参阅
const MenuItem = ({name}) => (
<div>{name}</div>
)
const MenuItem=({name})=>(
{name}
)
购买解构参数列表中的道具,只需查看函数定义,就可以轻松地看到正在立即使用哪些道具。根据我编写100多个组件的经验,功能组件通常更简洁、更容易掌握并减少样板代码
除此之外,javascript仍然是一种脚本语言,这意味着任何东西都可以在运行时传递。或者使用typescript可以帮助您完成自动完成和类型检查。如果您主要关心的是可见性,那么最好只编写功能组件,因为不再需要任何类组件:
const MenuItem = ({name}) => (
<div>{name}</div>
)
const MenuItem=({name})=>(
{name}
)
购买解构参数列表中的道具,只需查看函数定义,就可以轻松地看到正在立即使用哪些道具。根据我编写100多个组件的经验,功能组件通常更简洁、更容易掌握并减少样板代码
除此之外,javascript仍然是一种脚本语言,这意味着任何东西都可以在运行时传递。或者使用typescript可以帮助您自动完成和类型检查。有几个选项可以键入您的道具 第一个是React PropTypes,它的工作原理如下:
import PropTypes from 'prop-types';
class MenuItem extends React.Component {
constructor(props) {
super(props)
}
render() {
return <div name={this.props.name}></div>
}
}
MenuItem.propTypes = {
name: PropTypes.string.isRequired
}
从“道具类型”导入道具类型;
类MenuItem扩展了React.Component{
建造师(道具){
超级(道具)
}
render(){
返回
}
}
MenuItem.propTypes={
名称:PropTypes.string.isRequired
}
您只需将道具的名称和类型写入组件类的属性“propTypes”中
当您想要键入组件道具时,React PropTypes是一个很好的解决方案
还有另一种解决方案,类似于Typescript的Javascript风格
在React应用程序上设置Typescript后,您可以将Typescript与组件一起使用,如下所示:
interface IMenuItem {
name: string;
}
class MenuItem extends React.Component<IMenuItem> {
constructor(props) {
super(props)
}
render() {
return <div name={this.props.name}></div>
}
}
const MenuItem = ({name}) => (
<div>{name}</div>
)
接口IMenuItem{
名称:字符串;
}
类MenuItem扩展了React.Component{
建造师(道具){
超级(道具)
}
render(){
返回
}
}
Typescript的优点是,您可以键入每个变量、每个状态、每个道具、所有东西
然而,这个解决方案在时间上是昂贵的,因为你必须很好地学习Typescript,并且你必须正确地键入应用程序的每一部分
最后,如果您只想让IDE告诉您可以使用哪些道具,而无需键入它们,那么您可以在道具上使用对象分解,并使用如下功能组件:
interface IMenuItem {
name: string;
}
class MenuItem extends React.Component<IMenuItem> {
constructor(props) {
super(props)
}
render() {
return <div name={this.props.name}></div>
}
}
const MenuItem = ({name}) => (
<div>{name}</div>
)
const MenuItem=({name})=>(
{name}
)
希望这会有帮助 有几个选项可用于键入道具 第一个是React PropTypes,它的工作原理如下:
import PropTypes from 'prop-types';
class MenuItem extends React.Component {
constructor(props) {
super(props)
}
render() {
return <div name={this.props.name}></div>
}
}
MenuItem.propTypes = {
name: PropTypes.string.isRequired
}
从“道具类型”导入道具类型;
类MenuItem扩展了React.Component{
建造师(道具){
超级(道具)
}
render(){
返回
}
}
MenuItem.propTypes={
名称:PropTypes.string.isRequired
}
您只需将道具的名称和类型写入组件类的属性“propTypes”中
当您想要键入组件道具时,React PropTypes是一个很好的解决方案
还有另一种解决方案,类似于Typescript的Javascript风格
在React应用程序上设置Typescript后,您可以将Typescript与组件一起使用,如下所示:
interface IMenuItem {
name: string;
}
class MenuItem extends React.Component<IMenuItem> {
constructor(props) {
super(props)
}
render() {
return <div name={this.props.name}></div>
}
}
const MenuItem = ({name}) => (
<div>{name}</div>
)
接口IMenuItem{
名称:字符串;
}
类MenuItem扩展了React.Component{
建造师(道具){
超级(道具)
}
render(){
返回
}
}
Typescript的优点是,您可以键入每个变量、每个状态、每个道具、所有东西
然而,这个解决方案在时间上是昂贵的,因为你必须很好地学习Typescript,并且你必须正确地键入应用程序的每一部分
最后,如果您只想让IDE告诉您可以使用哪些道具,而无需键入它们,那么您可以在道具上使用对象分解,并使用如下功能组件:
interface IMenuItem {
name: string;
}
class MenuItem extends React.Component<IMenuItem> {
constructor(props) {
super(props)
}
render() {
return <div name={this.props.name}></div>
}
}
const MenuItem = ({name}) => (
<div>{name}</div>
)
const MenuItem=({name})=>(
{name}
)
希望这会有帮助 反应类型?这些类型有用吗?有用