index.js 2.02 KB
import React,{Component} from 'react';
import PropTypes from 'prop-types';
import{connect} from "react-redux";
import EVENT from "../../store/EVENT"
import $http from "../../service";
//import * as utils from "../../utils/index";
@connect((state)=>{
   // debugger
    let {layout,login} = state
    return {layout,login};
})
 class Demo extends Component{
    state={
        list:[1,2,3]
    }
    componentDidMount(){
      //  debugger
      console.log($http)
        $http.GET("/api")
             .then(d=>{
                 debugger
             })
    }
    /**
     * @name 同步修改
     */
    EventClick(item){
        console.log(this.props);
        this.props.dispatch({
            type:EVENT.LAYOUT,
            payload:{ 
                path:"/",title:"更改"
            }
        })
    }
    /**
     * @name 异步修改
     */
    EventDyncClick(){
      
        this.props.dispatch({
            type:EVENT.LOGIN,
            payload:{ 
                name:"hehehe"
            }
        })
    }
    /**
     * 
     */
    EventClickSetList(item,ind){
        let {list} = this.state;
            list[ind] = item+1;
        this.setState({list})
    }
    render(){
        let { layout,login} = this.props;
       // console.log(layout,login)
        return  <article>
            {
                this.state.list.map((item,ind)=>{
                return <span style={{margin:10}} onClick={this.EventClickSetList.bind(this,item,ind)} key={ind}>{item}</span>
                })
            }
            <p>同步修改</p>
           {
             layout.menuList.map((d,ind)=>{
                 return <span key={ind} onClick={this.EventClick.bind(this,d)}>{JSON.stringify(d)}</span>
             })
           }
           <p>异步修改</p>
           {
            <span onClick={this.EventDyncClick.bind(this)}>{login.name}</span>
           }
        </article>
    }
}
// Demo.PropTypes={
//     layout:PropTypes.object
// }
// Demo.defaultProps={
//     layout:{
//         menuList:[]
//     }
// }
export default Demo;