React是按W3C实现的事件机制。使用react有一点很重要,就熟悉w3c规范。

    1. class Child1 extends Component {
    2. state = { count: 0 }
    3. countClick = (e) => {
    4. const count = this.state.count + 1;
    5. this.setState({ count });
    6. e.ChildData = { count };
    7. }
    8. render() {
    9. return <span onClick={ this.countClick }>Child1的数是{this.state.count}</span>
    10. }
    11. };
    12. class Child2 extends Component {
    13. state = { count: 0 }
    14. render() {
    15. return <span>嵌套:{ this.props.children }</span>
    16. }
    17. };
    18. class App extends Component {
    19. appOnClick = (e)=>{
    20. console.log(e.ChildData);// 传出内部的数据
    21. }
    22. render() {
    23. return (<div onClick={ this.appOnClick }>
    24. <Child2>
    25. <Child1/>
    26. </Child2>
    27. </div>)
    28. }
    29. }
    30. export default App

    使用e可以将 内部组件的state带出。
    好处:内部可以维护state;
    缺点:在外部绑定事件,并调用e.stopPropagation,最外层将无法获得数据。