javascript - 可以在 proptype 形状中使用默认值吗?

标签 javascript reactjs react-proptypes

是否可以为具有必需键值对和默认键值对的对象定义类型?

例子:

const myComponent = (props) => {
  const {
    myObject: {
      someRequiredString,
      someNotRequiredString,
    }
  }
}

myComponent.propTypes = {
  myObject: PropTypes.shape({
    someRequiredString.string.isRequired,
  }).isRequired,
}

myComponent.defaultProps = {
  myObject: {
    someNotRequiredString: '',
  }
}

最佳答案

所以如果我理解你是正确的,你需要非必需的对象位如果这个对象存在它必须有 2 个必填字段,也许一个非必需的

所以我们在这里:

componentForUser.propTypes = {
    myObject: PropTypes.shape({
        name:PropTypes.string.isRequired,
        secondName:PropTypes.string.isRequired,
        age:PropTypes.string,
    }),
}

componentForUser.defaultProps = {
    myObject: {
        name: 'defaultName',
        secondName: 'defaultSecondName',
        age:21
    }
}

在这种情况下,如果不需要 User 对象,您将获得具有以下属性的 User:

我的对象:{ 名称:'默认名称', secondName: 'defaultSecondName', 年龄:21 }

但是如果从 props 你会得到没有名字的对象 User,你会收到关于所需名字和 secondName 的警告。

关于javascript - 可以在 proptype 形状中使用默认值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57476875/

相关文章:

javascript - 循环时如何在Vue Js中显示特定范围的数字?

javascript - 使用 Redux/React 移动数组中的项目

javascript - 这个 react 路线有什么问题

node.js - SSL 的 Nginx 配置 - React - Node - Cloudflare

reactjs - 在呈现组件之前 react proptypes 警告?

javascript - 不明白插件和脚本之间的区别

javascript - 给定一个字符串 S,返回 "reversed"字符串,其中所有不是字母的字符都保持在同一个位置,并且所有字母反转它们的位置

javascript - 表悬停( Bootstrap )不适用于 react

javascript - PropType 没有发出警告

javascript - React 和 PropTypes