比如
ReactDOM.render(<A />, ea);
ReactDOM.render(<B />, eb);
A 中的某种操作引发 B 中的 action
比如
ReactDOM.render(<A />, ea);
ReactDOM.render(<B />, eb);
A 中的某种操作引发 B 中的 action
用事件(https://www.npmjs.com/package/events)
var EventEmitter = require('events');
class A extend components {
handleClick() {
this.props.emitter.emit('a.click');
}
render() {
return (
<button onClick={this.handleClick.bind(this)}>Click!</button>
);
}
}
class B extend components {
comonentDidMount() {
this.props.emitter.on('a.click', () => {
this.setState({count: this.state.count + 1});
});
}
render() {
return (
<div>{this.state.count}</div>
);
}
}
var emitter = new EventEmitter;
ReactDOM.render(<A emitter={emitter} />, ea);
ReactDOM.render(<B emitter={emitter} />, eb);
事件监听最方便,但是搞多了维护起来很困难。
teambition复杂页面的做法一般是:
parentApp 给 subApp-A 一个callback方法,回调中去操作 subApp-B
供参考!