非父子组件传值
react的非父子组件传值可以是使用订阅模式
- 首先定义订阅者
// 创建一个observer.js文件
const observer = {
list: [], // 用力收集所有的函数
subscribe(callback) { // 接收dispatch触发的函数的方法
this.list.push(callback)
}
dispatch(data) { // 触发事件的方法
this.list.forEach(item => {
item(data)
})
}
}
- 定义子组件一 用来接收数据
import {Component} from 'react'
import observer from 'observer.js'
class Child1 extends Component {
componentWillMount() {
observer.subscribe((data) => {
console.log(data) // 该data就是其他组件传递过来的数据
})
}
render() {
return <div>