简写;
class Person extends React.Component {
static propTypes = {
name: PropTypes.string.isRequired,
sex: PropTypes.string,
speak: PropTypes.func
}
static defaultProps = {
sex: "男"
}
render() {
console.log(this)
this.props.name = "nihao"
const { name, age, sex } = this.props;
return (
<ul>
<li>姓名:{name}</li>
<li>年龄:{age}</li>
<li>性别:{sex}</li>
</ul>
)
}
}
const person = { name: "老刘", age: 18, sex: "" }
console.log(...person)
ReactDOM.render(<Person {...person} />, document.getElementById("test"));
ReactDOM.render(<Person name="tom" age={18} sex="nv" speak={speak} />, document.getElementById("test"));
function speak() {
}
对组件标签属性的限制和默认值,从person对象外 移动到该对象里边了。
props只读不能修改,如:
class Person extends React.Component {
render() {
console.log(this)
this.props.name=“nihao”
const {name,age,sex} = this.props;
return (
- 姓名:{name}
- 年龄:{age}
- 性别:{sex}
)
}
}
报错:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/12e9b335e3659acf16dd9ee9c908135a.png)
所以不要修改props中的属性值。