美文网首页
新建react 组件

新建react 组件

作者: _嘿嘿_ | 来源:发表于2018-05-29 17:41 被阅读0次

import React, { Component } from 'react';
import {Card, Icon,Avatar,Dropdown,Menu,Button} from 'antd';
import {getAxios} from '../../utils/http';
import {global} from '../../constants/global'
const { Meta } = Card;
const {actions, CMS_BASE_URL} = global
// const axios = getAxios();
export default class IMECard extends Component {

constructor (props) {
    super(props);
    this.state = {
        item: this.props.item,
        i : this.props.i,
        actions : [],
    }
}

componentWillReceiveProps(nextProps){
    if(this.props.item  != nextProps.item){
        this.setState({item : nextProps.item});
    }
}

//动态加载按钮
initMyActions = (actions,oid)=>{
    const  self = this;
    let arr = [];
    let MenuItems  =  [];
    const menu = (
        <Menu>
            {MenuItems}
        </Menu>
    );
    for(let i = 0;i<actions.length;i++){
        let action = actions[i];
        console.log(action);
        //显示前面两个
       if(i<2) {
           arr.push(self.initAction(action, oid));
       }
       //超过三个的时候
       else{
           let nowItem = (<Menu.Item>{self.initAction(action, oid)}</Menu.Item>);
           MenuItems.push(nowItem);
       }
    }
        const showMore = (<Dropdown overlay={menu} placement="topCenter"><Icon type="ellipsis" /></Dropdown>);
        arr.push(showMore);
    return arr;
}
 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~函数里面新建对象~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
initAction = function (action, oid) {
    console.info('actionOid:' + oid)
    let object = require("../../actions/" + action.key).default;
    const element = React.createElement(object,{"oid": oid} ,null);
    return element;
}

componentWillMount() {
    var self = this;
    getAxios().get(actions+'/owner').then(function (response) {
        const success = response.data.success;
        if(success){
            self.setState({actions:response.data.result});
        }
    });
}

render() {
    const self = this;
    const {image, name, desc,oid} = this.state.item;
    return (
        <Card
            key = {oid + `-card`}
            style={{ width: '100%',minHeight:273}}
            bordered={true} hoverable={true}
            cover={<img alt="" src={CMS_BASE_URL + image} style={{'max-height': '529px', height:'100%'}}
                        onClick = {(e) =>{if(this.props.onClick != null) this.props.onClick(e, this.state.i)}}/>}
            actions={
                // this.state.actions.map(action => this.initAction(action, oid))
                this.initMyActions(this.state.actions,oid)
            }
        >
            <Meta
                avatar={<Avatar src="/images/ODTLcjxAfvqbxHnVXCYX.png" />}
                title={name}
                style={{margin:'-21px'}}
                description={desc}
            />
        </Card>

    )
}

}

相关文章

  • 新建react 组件

    import React, { Component } from 'react';import {Card, Ic...

  • react-native 新建项目

    指定版本新建项目 第三库组件 React Native常用组件 @react-navigation 路由导航@re...

  • babel - es6解析

    安装组件 webpack.config.js 新建.babelrc文件 删除文件夹 解析react语法

  • React基础

    React包含react元素和react组件 react元素 react组件 react组件分为函数组件和类组件 ...

  • [RN] React Native WebStorm代码模版

    在React-Native日常开发中,新建文件或者组件是最常用的操作。可是,在我们新建不同的文件或者组件时,一些代...

  • webpack手动配置react app

    1.集成react相关 2.新建router文件夹和组件router/router.js 3.集成react-re...

  • react+typescript+antd 项目实战(2)

    添加组件 目标:通过添加组件的方式,做一个主页,显示welcome to react在src下新建componen...

  • react框架 新建组件以及父子组件通信

    新建一个ComentList.js 文件 父组件中使用子组件 注意事项 继续 子组件==》父组件 也是通过pr...

  • 组件

    组件是React的基石,所有的React应用程序都是基于组件的。React组件,可以通过React.createC...

  • 新建react项目全局引入antd样式踩坑

    新建了一个react项目,在使用react组件的时候,发现样式不生效。按照官网的单独引入方式可以生效 下面讲一讲全...

网友评论

      本文标题:新建react 组件

      本文链接:https://www.haomeiwen.com/subject/bwmajftx.html