Javascript 可以在proptype形状中使用默认值吗?
是否可以使用所需的键值对和默认键值对定义对象的类型 例如:Javascript 可以在proptype形状中使用默认值吗?,javascript,reactjs,react-proptypes,Javascript,Reactjs,React Proptypes,是否可以使用所需的键值对和默认键值对定义对象的类型 例如: const myComponent=(道具)=>{ 常数{ myObject:{ 一些需要的字符串, 一些不需要的字符串, } } } myComponent.propTypes={ myObject:PropTypes.shape({ someRequiredString.string.isRequired, }).要求, } myComponent.defaultProps={ myObject:{ someNotRequiredS
const myComponent=(道具)=>{
常数{
myObject:{
一些需要的字符串,
一些不需要的字符串,
}
}
}
myComponent.propTypes={
myObject:PropTypes.shape({
someRequiredString.string.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
}
}
在这种情况下,如果不需要用户对象,您将获得具有以下属性的用户:
myObject:{
名称:“defaultName”,
secondName:“defaultSecondName”,
年龄:21
}
但是,如果从props中获得的对象User没有名称,则会捕捉到关于必需名称和secondName的警告。可能自提出此问题以来,情况已经发生了变化,但您无法为这样的嵌套值提供defaultProps。通常必填字段没有默认值True,但是一个同时具有必填字段和非必填字段的对象又如何呢@VadimHulevichSo诀窍是不要在propTypes中的对象上设置
.isRequired
。完美的