组件通讯的介绍
组件props
<InfoClass name="张三"></InfoClass>
<InfoFunction name="李四"></InfoFunction>
class Info_Class extends React.Component {
constructor(props) {
super(props)
}
render () {
return (
<div>
{this.props.name}
</div>
)
}
}
function Info_Class (props) {
return (
<div>
{props.name}
</div>
)
}
组件通讯的三种方式
Context
class Context extends React.Component {
render () {
return (
<themeContext.Provider value={theme}>
<div>
<Context1></Context1>
</div>
</themeContext.Provider>
)
}
}
<themeContext.Consumer>{data => console.log(data)}</themeContext.Consumer>
props深入
class Context extends React.Component {
render () {
return (
<div>
<Context1>
<p>123</p>
</Context1>
</div>
)
}
}
class Context extends React.Component {
constructor(props) {
super(props)
console.log(props.children )
}
render () {
console.log(this.props.children )
return (
<div>
<Context2>
</Context2>
</div>
)
}
}
import PropTypes from "prop-types"
function Child (props) {
return (
<div>
</div>
)
}
3、使用
Child.propTypes = {
list: PropTypes.array
}
function Child (props) {
console.log(props)
return (
<div>
</div>
)
}
Child.defaultProps = {
page: 10
}