<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="test1"></div>
<script src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<!-- 生产环境中不建议使用 -->
<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
<script type="text/babel">
//创建父组件
class Father extends React.Component{
constructor(){
//this指向React.Component
super()
this.state={
a:1,
list:['a','b','c']
}
}
father=(data)=>{
console.log("111",data)
}
render(){
//this指向React.Component
return(
<div>
{/* 调用本身组件的函数 */}
<div onClick={this.father}>父组件 </div>
{
this.state.list.map((item)=>{
{/* 调用本身组件的函数并使用箭头函数包裹的方式给函数传递值 直接写成this.father(item)第一遍渲染时会执行 */}
return <div onClick={()=>{this.father(item)}} key={item}>{item}</div>
})
}
{/*给子组件绑定一个属性 这个属性会议对象的形式传递给子组件 */}
<Childr father={this.father}></Childr>
</div>
)
}
}
//创建子组件
class Childr extends React.Component{
constructor(){
super()
}
state={
b:'one'
}
child=()=>{
// 接收到父组件传递过来的函数并调用,给函数传递值。父组件会执行函数,并接收到值
const {father}=this.props
father(this.state.b)
}
render(){
return(
<div onClick={this.child}>
子组件
</div>
)
}
}
//渲染组件到页面
ReactDOM.render(<Father/>,document.getElementById('test1'))
</script>
</body>
</html>
react子给父传值
最新推荐文章于 2024-03-30 15:58:51 发布