美文网首页
案例:邮件发送-收件人选择

案例:邮件发送-收件人选择

作者: kino2046 | 来源:发表于2020-02-27 01:08 被阅读0次

Mail.js

SendList.js

FriendList

# 案例:邮件发送-收件人选择

仿 QQ 邮箱发送邮件的添加接收人功能

```css

ul {

    list-style-type: none;

    margin: 0;

    padding: 0;

}

li {

    line-height: 30px;

}

.fl {

    float: left;

}

.fr {

    float: right;

}

.clear:after {

    content: '';

    display: block;

    clear: both;

}

.box {

    padding: 10px;

    margin: 10px;

    border: 1px solid #000;

    width: 200px;

}

.multi-input {

    margin: 10px;

    padding: 5px;

    border: 1px solid #666;

}

.multi-input>div {

    height: 30px;

}

```

```jsx

import React from 'react';

import './index.css';

import MultiInput from './MultiInput';

export default class GetDerviedStateFromPropsComponent extends React.Component {

    constructor(...props) {

        super(...props);

        this.state = {

            friends: [

                {id: 1, name: '张三', email: 'zhangsan@email.com'},

                {id: 2, name: '李四', email: 'lisi@email.com'},

                {id: 3, name: '王五', email: 'wangwu@email.com'}

            ],

            user: null

        };

        this.addUser = this.addUser.bind(this);

    }

    addUser(user) {

        this.setState({user})

    }

    render() {

        let {friends, user} = this.state;

        return (

            <div className="clear">

                <h1>发送邮件</h1>

                <hr/>

                <ul className="box fl">

                    {

                        friends.map(friend => (

                            <li key={friend.id} onClick={e=>this.addUser(friend)}>

                                {friend.name}

                            </li>

                        ))

                    }

                </ul>

                <div className="fl">

                    <MultiInput user={user} />

                </div>

            </div>

        );

    }

}

```

```jsx

import React from 'react';

import './index.css';

export default class MultiInput extends React.Component {

    static defaultProps = {

        user: []

    }

    constructor(...props) {

        super(...props);

        this.state = {

            users: []

        }

        this.keyDown = this.keyDown.bind(this);

    }

    static getDerivedStateFromProps(props, state) {

        if (props.user && !state.users.find(u => u.email === props.user.email)) {

            let users = MultiInput.addNewUser(state.users, {name: props.user.name, email: props.user.email});

            return {

                users

            }

        }

        return null;

    }

    keyDown({which, target}) {

        if (which === 13 && target.value !== '') {

            let users = MultiInput.addNewUser(this.state.users, {name: '', email: target.value});

            this.setState({

                users

            });

            target.value = '';

        }

    }

    static addNewUser(users, user) {

        if ( !users.find(u => u.email === user.email) ) {

            users.push(user);

        }

        return users;

    }

    render() {

        let {users} = this.state;

        return (

            <div className="multi-input">

                {

                    users.map(user => (

                        <div key={user.email}>{user.name} {user.email};</div>

                    ))

                }

                <div>

                    <input type="text" onKeyDown={this.keyDown} />

                </div>

            </div>

        );

    }

}

```

相关文章

  • 案例:邮件发送-收件人选择

    Mail.js SendList.js FriendList #案例:邮件发送-收件人选择 仿QQ邮箱发送邮件的添...

  • 如何避免邮件出错?

    邮件发送,特别是对客户的邮件,在发送前一定要仔细逐项检查: 收件人/抄送人:是否是正确的邮件地址,有时在添加邮件联...

  • 太傻老师对太傻的肉丸的解释

    收件人: thr taisha book 已发送邮件: Wed, 8 Jan 2014 14:50:49 +080...

  • Python之SMTP协议

    发邮件一般包含如下内容,发件人、收件人、邮件主题、邮件正文、附件,在解决如何用python发送邮件之前,需要了解如...

  • Navicat如何自动发送邮件

    Navicat 12版本自带邮件发送功能,可以将数据库底表直接发送给指定的收件人

  • python 发送邮件给多人

    python发送邮件相信很多python使用者都会,这里介绍针对发给多个收件人的心得: 关键点1:收件人邮箱msg...

  • 教你如何发QQ邮箱。

    首先下载一个QQ邮箱,再把所要发的文章或文件打开,点分享,点更多,点邮件发送,点通过邮件发送,会出现收件人,点收件...

  • 22个方法全面提升邮件送达率

    客户经常会问,为什么电子邮件会被拦截、无法发送或进入收件人垃圾邮件文件夹?最主要原因可能来自发送信誉和电子邮件质量...

  • Python3:发邮件

    利用python的组件进行发邮件1.构建邮件服务器设置、连接服务器、登录服务器2.构建邮件内容3.发送邮件,收件人...

  • 终于学会了邮箱的正确用法~

    KurokoZ的每日工作笔记。 搞清楚几个相似的概念 收件人、抄送人 收件人:邮件直接发送对象,往往需要对方在收到...

网友评论

      本文标题:案例:邮件发送-收件人选择

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